From fd5f9292f500652e1d4792b09fb8ac60e1268ce4 Mon Sep 17 00:00:00 2001
From: Gavin Wood <gavin@parity.io>
Date: Mon, 4 Mar 2024 20:12:43 +0100
Subject: [PATCH] FRAME: Create `TransactionExtension` as a replacement for
 `SignedExtension` (#2280)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #2160

First part of [Extrinsic
Horizon](https://github.com/paritytech/polkadot-sdk/issues/2415)

Introduces a new trait `TransactionExtension` to replace
`SignedExtension`. Introduce the idea of transactions which obey the
runtime's extensions and have according Extension data (né Extra data)
yet do not have hard-coded signatures.

Deprecate the terminology of "Unsigned" when used for
transactions/extrinsics owing to there now being "proper" unsigned
transactions which obey the extension framework and "old-style" unsigned
which do not. Instead we have __*General*__ for the former and
__*Bare*__ for the latter. (Ultimately, the latter will be phased out as
a type of transaction, and Bare will only be used for Inherents.)

Types of extrinsic are now therefore:
- Bare (no hardcoded signature, no Extra data; used to be known as
"Unsigned")
- Bare transactions (deprecated): Gossiped, validated with
`ValidateUnsigned` (deprecated) and the `_bare_compat` bits of
`TransactionExtension` (deprecated).
  - Inherents: Not gossiped, validated with `ProvideInherent`.
- Extended (Extra data): Gossiped, validated via `TransactionExtension`.
  - Signed transactions (with a hardcoded signature).
  - General transactions (without a hardcoded signature).

`TransactionExtension` differs from `SignedExtension` because:
- A signature on the underlying transaction may validly not be present.
- It may alter the origin during validation.
- `pre_dispatch` is renamed to `prepare` and need not contain the checks
present in `validate`.
- `validate` and `prepare` is passed an `Origin` rather than a
`AccountId`.
- `validate` may pass arbitrary information into `prepare` via a new
user-specifiable type `Val`.
- `AdditionalSigned`/`additional_signed` is renamed to
`Implicit`/`implicit`. It is encoded *for the entire transaction* and
passed in to each extension as a new argument to `validate`. This
facilitates the ability of extensions to acts as underlying crypto.

There is a new `DispatchTransaction` trait which contains only default
function impls and is impl'ed for any `TransactionExtension` impler. It
provides several utility functions which reduce some of the tedium from
using `TransactionExtension` (indeed, none of its regular functions
should now need to be called directly).

Three transaction version discriminator ("versions") are now
permissible:
- 0b000000100: Bare (used to be called "Unsigned"): contains Signature
or Extra (extension data). After bare transactions are no longer
supported, this will strictly identify an Inherents only.
- 0b100000100: Old-school "Signed" Transaction: contains Signature and
Extra (extension data).
- 0b010000100: New-school "General" Transaction: contains Extra
(extension data), but no Signature.

For the New-school General Transaction, it becomes trivial for authors
to publish extensions to the mechanism for authorizing an Origin, e.g.
through new kinds of key-signing schemes, ZK proofs, pallet state,
mutations over pre-authenticated origins or any combination of the
above.

## Code Migration

### NOW: Getting it to build

Wrap your `SignedExtension`s in `AsTransactionExtension`. This should be
accompanied by renaming your aggregate type in line with the new
terminology. E.g. Before:

```rust
/// The SignedExtension to the basic transaction logic.
pub type SignedExtra = (
	/* snip */
	MySpecialSignedExtension,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
```

After:

```rust
/// The extension to the basic transaction logic.
pub type TxExtension = (
	/* snip */
	AsTransactionExtension<MySpecialSignedExtension>,
);
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
```

You'll also need to alter any transaction building logic to add a
`.into()` to make the conversion happen. E.g. Before:

```rust
fn construct_extrinsic(
		/* snip */
) -> UncheckedExtrinsic {
	let extra: SignedExtra = (
		/* snip */
		MySpecialSignedExtension::new(/* snip */),
	);
	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
	let signature = payload.using_encoded(|e| sender.sign(e));
	UncheckedExtrinsic::new_signed(
		/* snip */
		Signature::Sr25519(signature),
		extra,
	)
}
```

After:

```rust
fn construct_extrinsic(
		/* snip */
) -> UncheckedExtrinsic {
	let tx_ext: TxExtension = (
		/* snip */
		MySpecialSignedExtension::new(/* snip */).into(),
	);
	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
	let signature = payload.using_encoded(|e| sender.sign(e));
	UncheckedExtrinsic::new_signed(
		/* snip */
		Signature::Sr25519(signature),
		tx_ext,
	)
}
```

### SOON: Migrating to `TransactionExtension`

Most `SignedExtension`s can be trivially converted to become a
`TransactionExtension`. There are a few things to know.

- Instead of a single trait like `SignedExtension`, you should now
implement two traits individually: `TransactionExtensionBase` and
`TransactionExtension`.
- Weights are now a thing and must be provided via the new function `fn
weight`.

#### `TransactionExtensionBase`

This trait takes care of anything which is not dependent on types
specific to your runtime, most notably `Call`.

- `AdditionalSigned`/`additional_signed` is renamed to
`Implicit`/`implicit`.
- Weight must be returned by implementing the `weight` function. If your
extension is associated with a pallet, you'll probably want to do this
via the pallet's existing benchmarking infrastructure.

#### `TransactionExtension`

Generally:
- `pre_dispatch` is now `prepare` and you *should not reexecute the
`validate` functionality in there*!
- You don't get an account ID any more; you get an origin instead. If
you need to presume an account ID, then you can use the trait function
`AsSystemOriginSigner::as_system_origin_signer`.
- You get an additional ticket, similar to `Pre`, called `Val`. This
defines data which is passed from `validate` into `prepare`. This is
important since you should not be duplicating logic from `validate` to
`prepare`, you need a way of passing your working from the former into
the latter. This is it.
- This trait takes two type parameters: `Call` and `Context`. `Call` is
the runtime call type which used to be an associated type; you can just
move it to become a type parameter for your trait impl. `Context` is not
currently used and you can safely implement over it as an unbounded
type.
- There's no `AccountId` associated type any more. Just remove it.

Regarding `validate`:
- You get three new parameters in `validate`; all can be ignored when
migrating from `SignedExtension`.
- `validate` returns a tuple on success; the second item in the tuple is
the new ticket type `Self::Val` which gets passed in to `prepare`. If
you use any information extracted during `validate` (off-chain and
on-chain, non-mutating) in `prepare` (on-chain, mutating) then you can
pass it through with this. For the tuple's last item, just return the
`origin` argument.

Regarding `prepare`:
- This is renamed from `pre_dispatch`, but there is one change:
- FUNCTIONALITY TO VALIDATE THE TRANSACTION NEED NOT BE DUPLICATED FROM
`validate`!!
- (This is different to `SignedExtension` which was required to run the
same checks in `pre_dispatch` as in `validate`.)

Regarding `post_dispatch`:
- Since there are no unsigned transactions handled by
`TransactionExtension`, `Pre` is always defined, so the first parameter
is `Self::Pre` rather than `Option<Self::Pre>`.

If you make use of `SignedExtension::validate_unsigned` or
`SignedExtension::pre_dispatch_unsigned`, then:
- Just use the regular versions of these functions instead.
- Have your logic execute in the case that the `origin` is `None`.
- Ensure your transaction creation logic creates a General Transaction
rather than a Bare Transaction; this means having to include all
`TransactionExtension`s' data.
- `ValidateUnsigned` can still be used (for now) if you need to be able
to construct transactions which contain none of the extension data,
however these will be phased out in stage 2 of the Transactions Horizon,
so you should consider moving to an extension-centric design.

## TODO

- [x] Introduce `CheckSignature` impl of `TransactionExtension` to
ensure it's possible to have crypto be done wholly in a
`TransactionExtension`.
- [x] Deprecate `SignedExtension` and move all uses in codebase to
`TransactionExtension`.
  - [x] `ChargeTransactionPayment`
  - [x] `DummyExtension`
  - [x] `ChargeAssetTxPayment` (asset-tx-payment)
  - [x] `ChargeAssetTxPayment` (asset-conversion-tx-payment)
  - [x] `CheckWeight`
  - [x] `CheckTxVersion`
  - [x] `CheckSpecVersion`
  - [x] `CheckNonce`
  - [x] `CheckNonZeroSender`
  - [x] `CheckMortality`
  - [x] `CheckGenesis`
  - [x] `CheckOnlySudoAccount`
  - [x] `WatchDummy`
  - [x] `PrevalidateAttests`
  - [x] `GenericSignedExtension`
  - [x] `SignedExtension` (chain-polkadot-bulletin)
  - [x] `RefundSignedExtensionAdapter`
- [x] Implement `fn weight` across the board.
- [ ] Go through all pre-existing extensions which assume an account
signer and explicitly handle the possibility of another kind of origin.
- [x] `CheckNonce` should probably succeed in the case of a non-account
origin.
- [x] `CheckNonZeroSender` should succeed in the case of a non-account
origin.
- [x] `ChargeTransactionPayment` and family should fail in the case of a
non-account origin.
  - [ ]
- [x] Fix any broken tests.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Signed-off-by: Alexandru Gheorghe <alexandru.gheorghe@parity.io>
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Co-authored-by: Nikhil Gupta <17176722+gupnik@users.noreply.github.com>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Maciej <maciej.zyszkiewicz@parity.io>
Co-authored-by: Javier Viola <javier@parity.io>
Co-authored-by: Marcin S. <marcin@realemail.net>
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io>
Co-authored-by: Javier Bullrich <javier@bullrich.dev>
Co-authored-by: Koute <koute@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Vladimir Istyufeev <vladimir@parity.io>
Co-authored-by: Ross Bulat <ross@parity.io>
Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
Co-authored-by: ordian <write@reusable.software>
Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
Co-authored-by: Aaro Altonen <48052676+altonen@users.noreply.github.com>
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
Co-authored-by: Julian Eager <eagr@tutanota.com>
Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Dónal Murray <donal.murray@parity.io>
Co-authored-by: yjh <yjh465402634@gmail.com>
Co-authored-by: Tom Mi <tommi@niemi.lol>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Will | Paradox | ParaNodes.io <79228812+paradox-tt@users.noreply.github.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Joshy Orndorff <JoshOrndorff@users.noreply.github.com>
Co-authored-by: Joshy Orndorff <git-user-email.h0ly5@simplelogin.com>
Co-authored-by: PG Herveou <pgherveou@gmail.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Juan Girini <juangirini@gmail.com>
Co-authored-by: bader y <ibnbassem@gmail.com>
Co-authored-by: James Wilson <james@jsdw.me>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: asynchronous rob <rphmeier@gmail.com>
Co-authored-by: Parth <desaiparth08@gmail.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Jonathan Udd <jonathan@dwellir.com>
Co-authored-by: Serban Iorga <serban@parity.io>
Co-authored-by: Egor_P <egor@parity.io>
Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: Evgeny Snitko <evgeny@parity.io>
Co-authored-by: Just van Stam <vstam1@users.noreply.github.com>
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com>
Co-authored-by: gupnik <nikhilgupta.iitk@gmail.com>
Co-authored-by: dzmitry-lahoda <dzmitry@lahoda.pro>
Co-authored-by: zhiqiangxu <652732310@qq.com>
Co-authored-by: Nazar Mokrynskyi <nazar@mokrynskyi.com>
Co-authored-by: Anwesh <anweshknayak@gmail.com>
Co-authored-by: cheme <emericchevalier.pro@gmail.com>
Co-authored-by: Sam Johnson <sam@durosoft.com>
Co-authored-by: kianenigma <kian@parity.io>
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>
Co-authored-by: Muharem <ismailov.m.h@gmail.com>
Co-authored-by: joepetrowski <joe@parity.io>
Co-authored-by: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com>
Co-authored-by: Gabriel Facco de Arruda <arrudagates@gmail.com>
Co-authored-by: Squirrel <gilescope@gmail.com>
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
Co-authored-by: georgepisaltu <george.pisaltu@parity.io>
Co-authored-by: command-bot <>
---
 Cargo.lock                                    |   35 +-
 bridges/bin/runtime-common/Cargo.toml         |    1 +
 bridges/bin/runtime-common/src/lib.rs         |   72 +-
 bridges/bin/runtime-common/src/mock.rs        |    2 +-
 .../runtime-common/src/priority_calculator.rs |   11 +-
 .../src/refund_relayer_extension.rs           |  154 +-
 .../chain-bridge-hub-cumulus/src/lib.rs       |    4 +-
 .../chain-bridge-hub-rococo/src/lib.rs        |    2 +-
 bridges/primitives/chain-kusama/src/lib.rs    |    4 +-
 .../chain-polkadot-bulletin/src/lib.rs        |   51 +-
 bridges/primitives/chain-polkadot/src/lib.rs  |    4 +-
 bridges/primitives/chain-rococo/src/lib.rs    |    4 +-
 bridges/primitives/chain-westend/src/lib.rs   |    4 +-
 bridges/primitives/polkadot-core/src/lib.rs   |   37 +-
 bridges/primitives/runtime/src/extensions.rs  |  135 +-
 .../snowbridge/runtime/test-common/Cargo.toml |    1 +
 cumulus/parachain-template/runtime/Cargo.toml |    2 +
 cumulus/parachain-template/runtime/src/lib.rs |   10 +-
 .../assets/asset-hub-rococo/Cargo.toml        |    2 +
 .../assets/asset-hub-rococo/src/lib.rs        |   77 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../asset-hub-rococo/src/weights/mod.rs       |    3 +
 .../pallet_asset_conversion_tx_payment.rs     |   92 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../assets/asset-hub-westend/Cargo.toml       |    2 +
 .../assets/asset-hub-westend/src/lib.rs       |   77 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../asset-hub-westend/src/weights/mod.rs      |    3 +
 .../pallet_asset_conversion_tx_payment.rs     |   92 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../bridge-hubs/bridge-hub-rococo/Cargo.toml  |    1 +
 .../src/bridge_to_bulletin_config.rs          |    4 +-
 .../src/bridge_to_westend_config.rs           |    4 +-
 .../bridge-hubs/bridge-hub-rococo/src/lib.rs  |   27 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../bridge-hub-rococo/src/weights/mod.rs      |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../bridge-hub-rococo/tests/snowbridge.rs     |    8 +-
 .../bridge-hub-rococo/tests/tests.rs          |   11 +-
 .../bridge-hubs/bridge-hub-westend/Cargo.toml |    1 +
 .../src/bridge_to_rococo_config.rs            |    4 +-
 .../bridge-hubs/bridge-hub-westend/src/lib.rs |   25 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../bridge-hub-westend/src/weights/mod.rs     |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../bridge-hub-westend/tests/tests.rs         |   11 +-
 .../collectives-westend/Cargo.toml            |    1 +
 .../collectives-westend/src/lib.rs            |   12 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../collectives-westend/src/weights/mod.rs    |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../contracts/contracts-rococo/Cargo.toml     |    1 +
 .../contracts/contracts-rococo/src/lib.rs     |   10 +-
 .../coretime/coretime-rococo/Cargo.toml       |    1 +
 .../coretime/coretime-rococo/src/lib.rs       |    9 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../coretime-rococo/src/weights/mod.rs        |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../coretime/coretime-westend/Cargo.toml      |    1 +
 .../coretime/coretime-westend/src/lib.rs      |    9 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../coretime-westend/src/weights/mod.rs       |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../glutton/glutton-westend/src/lib.rs        |    9 +-
 .../src/weights/frame_system_extensions.rs    |  119 +
 .../runtimes/people/people-rococo/Cargo.toml  |    1 +
 .../runtimes/people/people-rococo/src/lib.rs  |    9 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../people/people-rococo/src/weights/mod.rs   |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../runtimes/people/people-westend/Cargo.toml |    1 +
 .../runtimes/people/people-westend/src/lib.rs |    8 +-
 .../src/weights/frame_system_extensions.rs    |  121 +
 .../people/people-westend/src/weights/mod.rs  |    2 +
 .../src/weights/pallet_transaction_payment.rs |   67 +
 .../runtimes/starters/seedling/src/lib.rs     |    6 +-
 .../runtimes/starters/shell/src/lib.rs        |   64 +-
 .../runtimes/testing/penpal/Cargo.toml        |    1 +
 .../runtimes/testing/penpal/src/lib.rs        |   26 +-
 .../testing/rococo-parachain/Cargo.toml       |    1 +
 .../testing/rococo-parachain/src/lib.rs       |    7 +-
 cumulus/polkadot-parachain/Cargo.toml         |    1 +
 .../storage-weight-reclaim/Cargo.toml         |   13 +-
 .../src/benchmarking.rs                       |   70 +
 .../storage-weight-reclaim/src/lib.rs         |  522 +---
 .../storage-weight-reclaim/src/tests.rs       |  484 ++++
 cumulus/test/client/Cargo.toml                |    2 +
 cumulus/test/client/src/lib.rs                |   13 +-
 cumulus/test/runtime/src/lib.rs               |    9 +-
 cumulus/test/service/Cargo.toml               |    2 +
 cumulus/test/service/src/bench_utils.rs       |    4 +-
 cumulus/test/service/src/lib.rs               |    9 +-
 .../src/reference_docs/extrinsic_encoding.rs  |  101 +-
 .../src/reference_docs/frame_runtime_types.rs |    2 +-
 docs/sdk/src/reference_docs/mod.rs            |    4 +-
 .../src/reference_docs/signed_extensions.rs   |   79 -
 .../reference_docs/transaction_extensions.rs  |   57 +
 polkadot/node/service/Cargo.toml              |    1 +
 polkadot/node/service/src/benchmarking.rs     |   18 +-
 polkadot/node/test/service/Cargo.toml         |    1 +
 polkadot/node/test/service/src/lib.rs         |   11 +-
 polkadot/runtime/common/Cargo.toml            |    1 +
 polkadot/runtime/common/src/claims.rs         |  150 +-
 polkadot/runtime/rococo/Cargo.toml            |    1 +
 .../constants/src/weights/block_weights.rs    |   29 +-
 .../src/weights/extrinsic_weights.rs          |   29 +-
 polkadot/runtime/rococo/src/lib.rs            |   45 +-
 .../weights/frame_benchmarking_baseline.rs    |   43 +-
 .../rococo/src/weights/frame_system.rs        |  103 +-
 .../src/weights/frame_system_extensions.rs    |  123 +
 polkadot/runtime/rococo/src/weights/mod.rs    |    2 +
 .../rococo/src/weights/pallet_asset_rate.rs   |   63 +-
 .../src/weights/pallet_balances_balances.rs   |   58 +-
 ...allet_balances_nis_counterpart_balances.rs |   58 +-
 .../rococo/src/weights/pallet_bounties.rs     |  218 +-
 .../src/weights/pallet_child_bounties.rs      |  181 +-
 .../src/weights/pallet_conviction_voting.rs   |  196 +-
 .../rococo/src/weights/pallet_identity.rs     |  409 +--
 .../rococo/src/weights/pallet_indices.rs      |   73 +-
 .../src/weights/pallet_message_queue.rs       |  168 +-
 .../rococo/src/weights/pallet_multisig.rs     |  123 +-
 .../runtime/rococo/src/weights/pallet_nis.rs  |  243 +-
 .../rococo/src/weights/pallet_preimage.rs     |  252 +-
 .../rococo/src/weights/pallet_proxy.rs        |  195 +-
 .../src/weights/pallet_ranked_collective.rs   |   66 +-
 .../rococo/src/weights/pallet_recovery.rs     |  186 ++
 .../pallet_referenda_fellowship_referenda.rs  |  235 +-
 .../src/weights/pallet_referenda_referenda.rs |  283 +--
 .../rococo/src/weights/pallet_scheduler.rs    |  146 +-
 .../runtime/rococo/src/weights/pallet_sudo.rs |   45 +-
 .../rococo/src/weights/pallet_timestamp.rs    |   35 +-
 .../src/weights/pallet_transaction_payment.rs |   68 +
 .../rococo/src/weights/pallet_treasury.rs     |  233 +-
 .../rococo/src/weights/pallet_utility.rs      |   47 +-
 .../rococo/src/weights/pallet_vesting.rs      |  254 +-
 .../rococo/src/weights/pallet_whitelist.rs    |   68 +-
 .../runtime/rococo/src/weights/pallet_xcm.rs  |   90 +-
 .../weights/pallet_xcm_benchmarks_fungible.rs |  191 ++
 .../weights/pallet_xcm_benchmarks_generic.rs  |  347 +++
 .../weights/runtime_common_assigned_slots.rs  |   70 +-
 .../src/weights/runtime_common_auctions.rs    |  137 +-
 .../src/weights/runtime_common_claims.rs      |  180 +-
 .../src/weights/runtime_common_coretime.rs    |   86 +
 .../src/weights/runtime_common_crowdloan.rs   |  239 +-
 .../runtime_common_identity_migrator.rs       |   83 +-
 .../weights/runtime_common_paras_registrar.rs |  281 ++-
 .../src/weights/runtime_common_slots.rs       |  127 +-
 .../runtime_parachains_assigner_on_demand.rs  |   50 +-
 .../runtime_parachains_configuration.rs       |   48 +-
 .../weights/runtime_parachains_disputes.rs    |   23 +-
 .../src/weights/runtime_parachains_hrmp.rs    |  389 ++-
 .../weights/runtime_parachains_inclusion.rs   |   45 +-
 .../weights/runtime_parachains_initializer.rs |   27 +-
 .../src/weights/runtime_parachains_paras.rs   |  368 +--
 .../runtime_parachains_paras_inherent.rs      |  429 +++-
 polkadot/runtime/test-runtime/Cargo.toml      |    1 +
 polkadot/runtime/test-runtime/src/lib.rs      |   40 +-
 polkadot/runtime/westend/Cargo.toml           |    1 +
 polkadot/runtime/westend/src/lib.rs           |   25 +-
 .../src/weights/frame_system_extensions.rs    |  116 +
 polkadot/runtime/westend/src/weights/mod.rs   |    2 +
 .../westend/src/weights/pallet_sudo.rs        |   11 +
 .../src/weights/pallet_transaction_payment.rs |   65 +
 polkadot/xcm/xcm-builder/Cargo.toml           |    1 +
 .../xcm/xcm-builder/src/tests/pay/mock.rs     |   12 +-
 .../xcm/xcm-simulator/fuzzer/src/parachain.rs |    4 +-
 .../xcm-simulator/fuzzer/src/relay_chain.rs   |    4 +-
 prdoc/pr_2280.prdoc                           |  144 ++
 substrate/.maintain/frame-weight-template.hbs |    2 +-
 substrate/bin/minimal/runtime/src/lib.rs      |    4 +-
 substrate/bin/node-template/node/Cargo.toml   |    1 +
 .../node-template/node/src/benchmarking.rs    |    9 +-
 .../bin/node-template/runtime/Cargo.toml      |    1 +
 .../bin/node-template/runtime/src/lib.rs      |   12 +-
 substrate/bin/node/cli/Cargo.toml             |    2 +
 .../bin/node/cli/benches/block_production.rs  |    2 +-
 substrate/bin/node/cli/benches/executor.rs    |    6 +-
 substrate/bin/node/cli/src/service.rs         |   77 +-
 substrate/bin/node/cli/tests/basic.rs         |   26 +-
 substrate/bin/node/cli/tests/fees.rs          |   24 +-
 .../bin/node/cli/tests/submit_transaction.rs  |   10 +-
 substrate/bin/node/runtime/Cargo.toml         |    2 +
 substrate/bin/node/runtime/src/lib.rs         |  165 +-
 substrate/bin/node/testing/src/bench.rs       |   26 +-
 substrate/bin/node/testing/src/keyring.rs     |   44 +-
 .../client/api/src/notifications/tests.rs     |    7 +-
 substrate/client/db/benches/state_access.rs   |    5 +-
 substrate/client/db/src/lib.rs                |  262 +-
 substrate/client/db/src/utils.rs              |   11 +-
 .../network-gossip/src/state_machine.rs       |    5 +-
 substrate/client/network/sync/src/blocks.rs   |    7 +-
 substrate/client/transaction-pool/src/lib.rs  |    9 +-
 substrate/frame/alliance/src/weights.rs       | 1033 ++++----
 .../frame/asset-conversion/src/weights.rs     |  126 +-
 substrate/frame/asset-rate/src/weights.rs     |   73 +-
 substrate/frame/assets/src/weights.rs         |  841 +++----
 substrate/frame/babe/src/mock.rs              |    5 +-
 substrate/frame/bags-list/src/weights.rs      |  165 +-
 substrate/frame/balances/Cargo.toml           |    1 +
 .../balances/src/tests/currency_tests.rs      |   17 +-
 substrate/frame/balances/src/tests/mod.rs     |    4 +-
 substrate/frame/balances/src/weights.rs       |   98 +-
 substrate/frame/beefy/src/mock.rs             |    6 +-
 substrate/frame/benchmarking/src/weights.rs   |   81 +-
 substrate/frame/bounties/src/weights.rs       |  405 ++-
 substrate/frame/broker/src/weights.rs         |  357 +--
 substrate/frame/child-bounties/src/weights.rs |  381 ++-
 substrate/frame/collective/src/tests.rs       |    2 +-
 substrate/frame/collective/src/weights.rs     |  677 ++---
 substrate/frame/contracts/src/weights.rs      | 2222 +++++++++--------
 .../frame/conviction-voting/src/weights.rs    |  405 +--
 .../frame/core-fellowship/src/weights.rs      |  429 ++--
 substrate/frame/democracy/src/weights.rs      | 1093 ++++----
 .../election-provider-multi-phase/src/mock.rs |    2 +-
 .../src/unsigned.rs                           |    4 +-
 .../src/weights.rs                            |  517 ++--
 .../test-staking-e2e/src/mock.rs              |    4 +-
 substrate/frame/elections-phragmen/src/lib.rs |    2 +-
 .../frame/elections-phragmen/src/weights.rs   |  655 ++---
 substrate/frame/examples/basic/src/lib.rs     |   76 +-
 substrate/frame/examples/basic/src/tests.rs   |    9 +-
 .../examples/offchain-worker/src/tests.rs     |   22 +-
 substrate/frame/examples/tasks/src/weights.rs |   78 +-
 substrate/frame/executive/src/tests.rs        |  225 +-
 substrate/frame/fast-unstake/src/weights.rs   |  473 ++--
 substrate/frame/glutton/src/weights.rs        |  249 +-
 substrate/frame/grandpa/src/mock.rs           |    9 +-
 substrate/frame/identity/src/weights.rs       |  825 +++---
 substrate/frame/im-online/src/mock.rs         |    4 +-
 substrate/frame/im-online/src/tests.rs        |    4 +-
 substrate/frame/im-online/src/weights.rs      |   85 +-
 substrate/frame/indices/src/weights.rs        |  121 +-
 substrate/frame/lottery/src/weights.rs        |  301 +--
 substrate/frame/membership/src/weights.rs     |  385 ++-
 substrate/frame/message-queue/src/weights.rs  |  247 +-
 substrate/frame/migrations/src/weights.rs     |  183 +-
 substrate/frame/multisig/src/weights.rs       |  243 +-
 .../nft-fractionalization/src/weights.rs      |  209 +-
 substrate/frame/nfts/src/weights.rs           | 1692 ++++++-------
 substrate/frame/nis/src/weights.rs            |  429 ++--
 .../frame/nomination-pools/src/weights.rs     |  258 +-
 .../frame/offences/benchmarking/src/mock.rs   |    2 +-
 substrate/frame/parameters/src/weights.rs     |   38 +-
 substrate/frame/preimage/src/weights.rs       |  332 +--
 substrate/frame/proxy/src/weights.rs          |  377 +--
 .../frame/ranked-collective/src/weights.rs    |  353 +--
 substrate/frame/recovery/src/weights.rs       |  305 +--
 substrate/frame/referenda/src/weights.rs      | 1037 ++++----
 substrate/frame/remark/src/weights.rs         |   37 +-
 substrate/frame/safe-mode/src/weights.rs      |  142 +-
 substrate/frame/salary/src/weights.rs         |  217 +-
 substrate/frame/sassafras/src/mock.rs         |    5 +-
 substrate/frame/scheduler/src/weights.rs      |  266 +-
 substrate/frame/session/src/weights.rs        |  117 +-
 substrate/frame/society/src/weights.rs        |  974 ++++++--
 substrate/frame/src/lib.rs                    |    6 +-
 substrate/frame/staking/src/weights.rs        |  422 ++--
 .../frame/state-trie-migration/src/lib.rs     |    2 +-
 .../frame/state-trie-migration/src/weights.rs |  118 +-
 substrate/frame/sudo/src/benchmarking.rs      |   29 +-
 substrate/frame/sudo/src/extension.rs         |   78 +-
 substrate/frame/sudo/src/lib.rs               |    4 +-
 substrate/frame/sudo/src/weights.rs           |   71 +-
 substrate/frame/support/Cargo.toml            |    2 +-
 .../src/construct_runtime/expand/inherent.rs  |   18 +-
 .../src/construct_runtime/expand/metadata.rs  |    6 +-
 .../src/construct_runtime/expand/origin.rs    |   14 +
 substrate/frame/support/src/dispatch.rs       |   29 +-
 substrate/frame/support/src/lib.rs            |    8 +-
 .../frame/support/src/traits/dispatch.rs      |   21 +-
 substrate/frame/support/src/traits/misc.rs    |   13 +-
 .../support/src/transaction_extensions.rs     |   89 +
 .../support/src/weights/block_weights.rs      |   31 +-
 .../support/src/weights/extrinsic_weights.rs  |   31 +-
 .../support/test/tests/construct_runtime.rs   |    2 +-
 .../deprecated_where_block.stderr             |    4 +-
 substrate/frame/support/test/tests/pallet.rs  |  143 +-
 .../support/test/tests/pallet_instance.rs     |    2 +-
 .../system/benchmarking/src/extensions.rs     |  213 ++
 .../frame/system/benchmarking/src/lib.rs      |    1 +
 .../frame/system/benchmarking/src/mock.rs     |    1 +
 .../system/src/extensions/check_genesis.rs    |   33 +-
 .../system/src/extensions/check_mortality.rs  |   83 +-
 .../src/extensions/check_non_zero_sender.rs   |   95 +-
 .../system/src/extensions/check_nonce.rs      |  184 +-
 .../src/extensions/check_spec_version.rs      |   33 +-
 .../system/src/extensions/check_tx_version.rs |   32 +-
 .../system/src/extensions/check_weight.rs     |  228 +-
 substrate/frame/system/src/extensions/mod.rs  |    3 +
 .../frame/system/src/extensions/weights.rs    |  196 ++
 substrate/frame/system/src/lib.rs             |   10 +-
 substrate/frame/system/src/offchain.rs        |   22 +-
 substrate/frame/system/src/weights.rs         |  249 +-
 substrate/frame/timestamp/src/weights.rs      |   65 +-
 substrate/frame/tips/src/weights.rs           |  241 +-
 .../frame/transaction-payment/Cargo.toml      |    9 +
 .../asset-conversion-tx-payment/Cargo.toml    |   12 +
 .../asset-conversion-tx-payment/README.md     |    2 +-
 .../src/benchmarking.rs                       |  125 +
 .../asset-conversion-tx-payment/src/lib.rs    |  233 +-
 .../asset-conversion-tx-payment/src/mock.rs   |   70 +-
 .../asset-conversion-tx-payment/src/tests.rs  |  150 +-
 .../src/weights.rs                            |  150 ++
 .../asset-tx-payment/Cargo.toml               |    1 +
 .../asset-tx-payment/README.md                |    2 +-
 .../asset-tx-payment/src/benchmarking.rs      |  123 +
 .../asset-tx-payment/src/lib.rs               |  199 +-
 .../asset-tx-payment/src/mock.rs              |   54 +-
 .../asset-tx-payment/src/tests.rs             |  184 +-
 .../asset-tx-payment/src/weights.rs           |  146 ++
 .../skip-feeless-payment/src/lib.rs           |  111 +-
 .../skip-feeless-payment/src/mock.rs          |   30 +-
 .../skip-feeless-payment/src/tests.rs         |    5 +-
 .../transaction-payment/src/benchmarking.rs   |   81 +
 .../frame/transaction-payment/src/lib.rs      |  146 +-
 .../frame/transaction-payment/src/mock.rs     |   10 +
 .../frame/transaction-payment/src/payment.rs  |   56 +-
 .../frame/transaction-payment/src/tests.rs    |  444 ++--
 .../frame/transaction-payment/src/types.rs    |    2 +-
 .../frame/transaction-payment/src/weights.rs  |   92 +
 .../frame/transaction-storage/src/weights.rs  |  185 +-
 substrate/frame/treasury/src/weights.rs       |  348 +--
 substrate/frame/tx-pause/src/weights.rs       |   38 +-
 substrate/frame/uniques/src/weights.rs        |  368 +--
 substrate/frame/utility/src/weights.rs        |  161 +-
 substrate/frame/vesting/src/weights.rs        |  234 +-
 substrate/frame/whitelist/src/weights.rs      |  193 +-
 substrate/primitives/inherents/src/lib.rs     |    4 +-
 substrate/primitives/metadata-ir/src/lib.rs   |    2 +-
 substrate/primitives/metadata-ir/src/types.rs |   19 +-
 substrate/primitives/metadata-ir/src/v14.rs   |   10 +-
 substrate/primitives/metadata-ir/src/v15.rs   |    8 +-
 substrate/primitives/runtime/Cargo.toml       |    2 +
 .../runtime/src/generic/checked_extrinsic.rs  |  112 +-
 .../primitives/runtime/src/generic/mod.rs     |    4 +-
 .../src/generic/unchecked_extrinsic.rs        |  730 ++++--
 substrate/primitives/runtime/src/lib.rs       |   19 +-
 substrate/primitives/runtime/src/testing.rs   |  195 +-
 .../runtime/src/{traits.rs => traits/mod.rs}  |  244 +-
 .../as_transaction_extension.rs               |  133 +
 .../dispatch_transaction.rs                   |  141 ++
 .../src/traits/transaction_extension/mod.rs   |  526 ++++
 .../runtime/src/transaction_validity.rs       |    6 +-
 substrate/scripts/run_all_benchmarks.sh       |   13 +
 substrate/test-utils/runtime/src/extrinsic.rs |   17 +-
 substrate/test-utils/runtime/src/lib.rs       |   93 +-
 .../benchmarking-cli/src/pallet/template.hbs  |    4 +
 .../frame/remote-externalities/src/lib.rs     |    5 +-
 substrate/utils/frame/rpc/client/src/lib.rs   |    8 +-
 349 files changed, 25345 insertions(+), 16846 deletions(-)
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_asset_conversion_tx_payment.rs
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_asset_conversion_tx_payment.rs
 create mode 100644 cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/people/people-rococo/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/parachains/runtimes/people/people-westend/src/weights/frame_system_extensions.rs
 create mode 100644 cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 cumulus/primitives/storage-weight-reclaim/src/benchmarking.rs
 create mode 100644 cumulus/primitives/storage-weight-reclaim/src/tests.rs
 delete mode 100644 docs/sdk/src/reference_docs/signed_extensions.rs
 create mode 100644 docs/sdk/src/reference_docs/transaction_extensions.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/frame_system_extensions.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/pallet_recovery.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/pallet_transaction_payment.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_fungible.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_generic.rs
 create mode 100644 polkadot/runtime/rococo/src/weights/runtime_common_coretime.rs
 create mode 100644 polkadot/runtime/westend/src/weights/frame_system_extensions.rs
 create mode 100644 polkadot/runtime/westend/src/weights/pallet_transaction_payment.rs
 create mode 100644 prdoc/pr_2280.prdoc
 create mode 100644 substrate/frame/support/src/transaction_extensions.rs
 create mode 100644 substrate/frame/system/benchmarking/src/extensions.rs
 create mode 100644 substrate/frame/system/src/extensions/weights.rs
 create mode 100644 substrate/frame/transaction-payment/asset-conversion-tx-payment/src/benchmarking.rs
 create mode 100644 substrate/frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs
 create mode 100644 substrate/frame/transaction-payment/asset-tx-payment/src/benchmarking.rs
 create mode 100644 substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs
 create mode 100644 substrate/frame/transaction-payment/src/benchmarking.rs
 create mode 100644 substrate/frame/transaction-payment/src/weights.rs
 rename substrate/primitives/runtime/src/{traits.rs => traits/mod.rs} (94%)
 create mode 100644 substrate/primitives/runtime/src/traits/transaction_extension/as_transaction_extension.rs
 create mode 100644 substrate/primitives/runtime/src/traits/transaction_extension/dispatch_transaction.rs
 create mode 100644 substrate/primitives/runtime/src/traits/transaction_extension/mod.rs

diff --git a/Cargo.lock b/Cargo.lock
index ad218001b40..81881984378 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4070,11 +4070,13 @@ dependencies = [
  "cumulus-primitives-proof-size-hostfunction",
  "cumulus-test-runtime",
  "docify 0.2.7",
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
  "log",
  "parity-scale-codec",
  "scale-info",
+ "sp-core",
  "sp-io",
  "sp-runtime",
  "sp-std 14.0.0",
@@ -5938,7 +5940,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7"
 dependencies = [
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -6827,7 +6829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
  "hermit-abi 0.3.2",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -7834,9 +7836,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "lioness"
@@ -9177,6 +9179,7 @@ dependencies = [
 name = "pallet-asset-conversion-tx-payment"
 version = "10.0.0"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
  "pallet-asset-conversion",
@@ -11119,6 +11122,7 @@ dependencies = [
 name = "pallet-transaction-payment"
 version = "28.0.0"
 dependencies = [
+ "frame-benchmarking",
  "frame-support",
  "frame-system",
  "pallet-balances",
@@ -14333,7 +14337,7 @@ dependencies = [
  "hex",
  "lazy_static",
  "procfs-core",
- "rustix 0.38.21",
+ "rustix 0.38.25",
 ]
 
 [[package]]
@@ -15458,14 +15462,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.21"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
  "bitflags 2.4.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
+ "linux-raw-sys 0.4.11",
  "windows-sys 0.48.0",
 ]
 
@@ -18721,7 +18725,7 @@ dependencies = [
 [[package]]
 name = "sp-crypto-ec-utils"
 version = "0.4.1"
-source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
+source = "git+https://github.com/paritytech/polkadot-sdk#838a534da874cf6071fba1df07643c6c5b033ae0"
 dependencies = [
  "ark-bls12-377",
  "ark-bls12-377-ext",
@@ -19026,6 +19030,7 @@ dependencies = [
  "sp-tracing 16.0.0",
  "sp-weights",
  "substrate-test-runtime-client",
+ "tuplex",
  "zstd 0.12.4",
 ]
 
@@ -19074,7 +19079,7 @@ dependencies = [
 [[package]]
 name = "sp-runtime-interface-proc-macro"
 version = "11.0.0"
-source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
+source = "git+https://github.com/paritytech/polkadot-sdk#838a534da874cf6071fba1df07643c6c5b033ae0"
 dependencies = [
  "Inflector",
  "proc-macro-crate 1.3.1",
@@ -20293,7 +20298,7 @@ dependencies = [
  "cfg-if",
  "fastrand 2.0.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -20312,7 +20317,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.21",
+ "rustix 0.38.25",
  "windows-sys 0.48.0",
 ]
 
@@ -21158,6 +21163,12 @@ dependencies = [
  "utf-8",
 ]
 
+[[package]]
+name = "tuplex"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "676ac81d5454c4dcf37955d34fa8626ede3490f744b86ca14a7b90168d2a08aa"
+
 [[package]]
 name = "twox-hash"
 version = "1.6.3"
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index fac88b20ca5..ee54f15f38b 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -93,6 +93,7 @@ runtime-benchmarks = [
 	"pallet-bridge-messages/runtime-benchmarks",
 	"pallet-bridge-parachains/runtime-benchmarks",
 	"pallet-bridge-relayers/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"sp-runtime/runtime-benchmarks",
 	"xcm-builder/runtime-benchmarks",
diff --git a/bridges/bin/runtime-common/src/lib.rs b/bridges/bin/runtime-common/src/lib.rs
index 2722f6f1c6d..035077408c4 100644
--- a/bridges/bin/runtime-common/src/lib.rs
+++ b/bridges/bin/runtime-common/src/lib.rs
@@ -105,43 +105,48 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
 	($call:ty, $account_id:ty, $($filter_call:ty),*) => {
 		#[derive(Clone, codec::Decode, Default, codec::Encode, Eq, PartialEq, sp_runtime::RuntimeDebug, scale_info::TypeInfo)]
 		pub struct BridgeRejectObsoleteHeadersAndMessages;
-		impl sp_runtime::traits::SignedExtension for BridgeRejectObsoleteHeadersAndMessages {
+		impl sp_runtime::traits::TransactionExtensionBase for BridgeRejectObsoleteHeadersAndMessages {
 			const IDENTIFIER: &'static str = "BridgeRejectObsoleteHeadersAndMessages";
-			type AccountId = $account_id;
-			type Call = $call;
-			type AdditionalSigned = ();
+			type Implicit = ();
+		}
+		impl<Context> sp_runtime::traits::TransactionExtension<$call, Context> for BridgeRejectObsoleteHeadersAndMessages {
 			type Pre = ();
-
-			fn additional_signed(&self) -> sp_std::result::Result<
-				(),
-				sp_runtime::transaction_validity::TransactionValidityError,
-			> {
-				Ok(())
-			}
+			type Val = ();
 
 			fn validate(
 				&self,
-				_who: &Self::AccountId,
-				call: &Self::Call,
-				_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
+				origin: <$call as sp_runtime::traits::Dispatchable>::RuntimeOrigin,
+				call: &$call,
+				_info: &sp_runtime::traits::DispatchInfoOf<$call>,
 				_len: usize,
-			) -> sp_runtime::transaction_validity::TransactionValidity {
-				let valid = sp_runtime::transaction_validity::ValidTransaction::default();
+				_context: &mut Context,
+				_self_implicit: Self::Implicit,
+				_inherited_implication: &impl codec::Encode,
+			) -> Result<
+				(
+					sp_runtime::transaction_validity::ValidTransaction,
+					Self::Val,
+					<$call as sp_runtime::traits::Dispatchable>::RuntimeOrigin,
+				), sp_runtime::transaction_validity::TransactionValidityError
+			> {
+				let tx_validity = sp_runtime::transaction_validity::ValidTransaction::default();
 				$(
-					let valid = valid
-						.combine_with(<$filter_call as $crate::BridgeRuntimeFilterCall<$call>>::validate(call)?);
+					let call_filter_validity = <$filter_call as $crate::BridgeRuntimeFilterCall<$call>>::validate(call)?;
+					let tx_validity = tx_validity.combine_with(call_filter_validity);
 				)*
-				Ok(valid)
+				Ok((tx_validity, (), origin))
 			}
 
-			fn pre_dispatch(
+			fn prepare(
 				self,
-				who: &Self::AccountId,
-				call: &Self::Call,
-				info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
-				len: usize,
+				_val: Self::Val,
+				_origin: &<$call as sp_runtime::traits::Dispatchable>::RuntimeOrigin,
+				_call: &$call,
+				_info: &sp_runtime::traits::DispatchInfoOf<$call>,
+				_len: usize,
+				_context: &Context,
 			) -> Result<Self::Pre, sp_runtime::transaction_validity::TransactionValidityError> {
-				self.validate(who, call, info, len).map(drop)
+				Ok(())
 			}
 		}
 	};
@@ -150,12 +155,14 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
 #[cfg(test)]
 mod tests {
 	use crate::BridgeRuntimeFilterCall;
-	use frame_support::{assert_err, assert_ok};
+	use codec::Encode;
+	use frame_support::assert_err;
 	use sp_runtime::{
-		traits::SignedExtension,
+		traits::DispatchTransaction,
 		transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction},
 	};
 
+	#[derive(Encode)]
 	pub struct MockCall {
 		data: u32,
 	}
@@ -206,17 +213,20 @@ mod tests {
 		);
 
 		assert_err!(
-			BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 1 }, &(), 0),
+			BridgeRejectObsoleteHeadersAndMessages.validate_only((), &MockCall { data: 1 }, &(), 0),
 			InvalidTransaction::Custom(1)
 		);
 
 		assert_err!(
-			BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 2 }, &(), 0),
+			BridgeRejectObsoleteHeadersAndMessages.validate_only((), &MockCall { data: 2 }, &(), 0),
 			InvalidTransaction::Custom(2)
 		);
 
-		assert_ok!(
-			BridgeRejectObsoleteHeadersAndMessages.validate(&(), &MockCall { data: 3 }, &(), 0),
+		assert_eq!(
+			BridgeRejectObsoleteHeadersAndMessages
+				.validate_only((), &MockCall { data: 3 }, &(), 0)
+				.unwrap()
+				.0,
 			ValidTransaction { priority: 3, ..Default::default() }
 		)
 	}
diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs
index 8877a4fd95c..f147f1404f0 100644
--- a/bridges/bin/runtime-common/src/mock.rs
+++ b/bridges/bin/runtime-common/src/mock.rs
@@ -164,6 +164,7 @@ impl pallet_balances::Config for TestRuntime {
 	type AccountStore = System;
 }
 
+#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig as pallet_transaction_payment::DefaultConfig)]
 impl pallet_transaction_payment::Config for TestRuntime {
 	type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter<Balances, ()>;
 	type OperationalFeeMultiplier = ConstU8<5>;
@@ -176,7 +177,6 @@ impl pallet_transaction_payment::Config for TestRuntime {
 		MinimumMultiplier,
 		MaximumMultiplier,
 	>;
-	type RuntimeEvent = RuntimeEvent;
 }
 
 impl pallet_bridge_grandpa::Config for TestRuntime {
diff --git a/bridges/bin/runtime-common/src/priority_calculator.rs b/bridges/bin/runtime-common/src/priority_calculator.rs
index a597fb9e2f4..0c53018330e 100644
--- a/bridges/bin/runtime-common/src/priority_calculator.rs
+++ b/bridges/bin/runtime-common/src/priority_calculator.rs
@@ -169,12 +169,15 @@ mod integrity_tests {
 		// nodes to the proof (x0.5 because we expect some nodes to be reused)
 		let estimated_message_size = 512;
 		// let's say all our messages have the same dispatch weight
-		let estimated_message_dispatch_weight =
-			Runtime::WeightInfo::message_dispatch_weight(estimated_message_size);
+		let estimated_message_dispatch_weight = <Runtime as pallet_bridge_messages::Config<
+			MessagesInstance,
+		>>::WeightInfo::message_dispatch_weight(
+			estimated_message_size
+		);
 		// messages proof argument size is (for every message) messages size + some additional
 		// trie nodes. Some of them are reused by different messages, so let's take 2/3 of default
 		// "overhead" constant
-		let messages_proof_size = Runtime::WeightInfo::expected_extra_storage_proof_size()
+		let messages_proof_size = <Runtime as pallet_bridge_messages::Config<MessagesInstance>>::WeightInfo::expected_extra_storage_proof_size()
 			.saturating_mul(2)
 			.saturating_div(3)
 			.saturating_add(estimated_message_size)
@@ -182,7 +185,7 @@ mod integrity_tests {
 
 		// finally we are able to estimate transaction size and weight
 		let transaction_size = base_tx_size.saturating_add(messages_proof_size);
-		let transaction_weight = Runtime::WeightInfo::receive_messages_proof_weight(
+		let transaction_weight = <Runtime as pallet_bridge_messages::Config<MessagesInstance>>::WeightInfo::receive_messages_proof_weight(
 			&PreComputedSize(transaction_size as _),
 			messages as _,
 			estimated_message_dispatch_weight.saturating_mul(messages),
diff --git a/bridges/bin/runtime-common/src/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/refund_relayer_extension.rs
index bfcb82ad166..b912f8445ac 100644
--- a/bridges/bin/runtime-common/src/refund_relayer_extension.rs
+++ b/bridges/bin/runtime-common/src/refund_relayer_extension.rs
@@ -48,9 +48,12 @@ use pallet_transaction_payment::{Config as TransactionPaymentConfig, OnChargeTra
 use pallet_utility::{Call as UtilityCall, Config as UtilityConfig, Pallet as UtilityPallet};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, Get, PostDispatchInfoOf, SignedExtension, Zero},
+	traits::{
+		AsSystemOriginSigner, DispatchInfoOf, Dispatchable, Get, PostDispatchInfoOf,
+		TransactionExtension, TransactionExtensionBase, ValidateResult, Zero,
+	},
 	transaction_validity::{
-		TransactionPriority, TransactionValidity, TransactionValidityError, ValidTransactionBuilder,
+		InvalidTransaction, TransactionPriority, TransactionValidityError, ValidTransactionBuilder,
 	},
 	DispatchResult, FixedPointOperand, RuntimeDebug,
 };
@@ -239,8 +242,8 @@ pub enum RelayerAccountAction<AccountId, Reward> {
 	Slash(AccountId, RewardsAccountParams),
 }
 
-/// Everything common among our refund signed extensions.
-pub trait RefundSignedExtension:
+/// Everything common among our refund transaction extensions.
+pub trait RefundTransactionExtension:
 	'static + Clone + Codec + sp_std::fmt::Debug + Default + Eq + PartialEq + Send + Sync + TypeInfo
 where
 	<Self::Runtime as GrandpaConfig<Self::GrandpaInstance>>::BridgedChain:
@@ -456,8 +459,8 @@ where
 	}
 }
 
-/// Adapter that allow implementing `sp_runtime::traits::SignedExtension` for any
-/// `RefundSignedExtension`.
+/// Adapter that allow implementing `sp_runtime::traits::TransactionExtension` for any
+/// `RefundTransactionExtension`.
 #[derive(
 	DefaultNoBound,
 	CloneNoBound,
@@ -468,12 +471,13 @@ where
 	RuntimeDebugNoBound,
 	TypeInfo,
 )]
-pub struct RefundSignedExtensionAdapter<T: RefundSignedExtension>(T)
+pub struct RefundTransactionExtensionAdapter<T: RefundTransactionExtension>(T)
 where
 	<T::Runtime as GrandpaConfig<T::GrandpaInstance>>::BridgedChain:
 		Chain<BlockNumber = RelayBlockNumber>;
 
-impl<T: RefundSignedExtension> SignedExtension for RefundSignedExtensionAdapter<T>
+impl<T: RefundTransactionExtension> TransactionExtensionBase
+	for RefundTransactionExtensionAdapter<T>
 where
 	<T::Runtime as GrandpaConfig<T::GrandpaInstance>>::BridgedChain:
 		Chain<BlockNumber = RelayBlockNumber>,
@@ -483,22 +487,35 @@ where
 		+ MessagesCallSubType<T::Runtime, <T::Msgs as RefundableMessagesLaneId>::Instance>,
 {
 	const IDENTIFIER: &'static str = T::Id::STR;
-	type AccountId = AccountIdOf<T::Runtime>;
-	type Call = CallOf<T::Runtime>;
-	type AdditionalSigned = ();
-	type Pre = Option<PreDispatchData<AccountIdOf<T::Runtime>>>;
+	type Implicit = ();
+}
 
-	fn additional_signed(&self) -> Result<(), TransactionValidityError> {
-		Ok(())
-	}
+impl<T: RefundTransactionExtension, Context> TransactionExtension<CallOf<T::Runtime>, Context>
+	for RefundTransactionExtensionAdapter<T>
+where
+	<T::Runtime as GrandpaConfig<T::GrandpaInstance>>::BridgedChain:
+		Chain<BlockNumber = RelayBlockNumber>,
+	CallOf<T::Runtime>: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>
+		+ IsSubType<CallableCallFor<UtilityPallet<T::Runtime>, T::Runtime>>
+		+ GrandpaCallSubType<T::Runtime, T::GrandpaInstance>
+		+ MessagesCallSubType<T::Runtime, <T::Msgs as RefundableMessagesLaneId>::Instance>,
+	<CallOf<T::Runtime> as Dispatchable>::RuntimeOrigin:
+		AsSystemOriginSigner<AccountIdOf<T::Runtime>> + Clone,
+{
+	type Pre = Option<PreDispatchData<AccountIdOf<T::Runtime>>>;
+	type Val = Option<CallInfo>;
 
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: <CallOf<T::Runtime> as Dispatchable>::RuntimeOrigin,
+		call: &CallOf<T::Runtime>,
+		_info: &DispatchInfoOf<CallOf<T::Runtime>>,
 		_len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, CallOf<T::Runtime>> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
 		// this is the only relevant line of code for the `pre_dispatch`
 		//
 		// we're not calling `validate` from `pre_dispatch` directly because of performance
@@ -511,12 +528,12 @@ where
 		// we only boost priority of presumably correct message delivery transactions
 		let bundled_messages = match T::bundled_messages_for_priority_boost(parsed_call.as_ref()) {
 			Some(bundled_messages) => bundled_messages,
-			None => return Ok(Default::default()),
+			None => return Ok((Default::default(), parsed_call, origin)),
 		};
 
 		// we only boost priority if relayer has staked required balance
 		if !RelayersPallet::<T::Runtime>::is_registration_active(who) {
-			return Ok(Default::default())
+			return Ok((Default::default(), parsed_call, origin))
 		}
 
 		// compute priority boost
@@ -535,20 +552,21 @@ where
 			priority_boost,
 		);
 
-		valid_transaction.build()
+		let validity = valid_transaction.build()?;
+		Ok((validity, parsed_call, origin))
 	}
 
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		val: Self::Val,
+		origin: &<CallOf<T::Runtime> as Dispatchable>::RuntimeOrigin,
+		_call: &CallOf<T::Runtime>,
+		_info: &DispatchInfoOf<CallOf<T::Runtime>>,
 		_len: usize,
+		_context: &Context,
 	) -> Result<Self::Pre, TransactionValidityError> {
-		// this is a relevant piece of `validate` that we need here (in `pre_dispatch`)
-		let parsed_call = T::parse_and_check_for_obsolete_call(call)?;
-
-		Ok(parsed_call.map(|call_info| {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
+		Ok(val.map(|call_info| {
 			log::trace!(
 				target: "runtime::bridge",
 				"{} via {:?} parsed bridge transaction in pre-dispatch: {:?}",
@@ -561,13 +579,14 @@ where
 	}
 
 	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		pre: Self::Pre,
+		info: &DispatchInfoOf<CallOf<T::Runtime>>,
+		post_info: &PostDispatchInfoOf<CallOf<T::Runtime>>,
 		len: usize,
 		result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		let call_result = T::analyze_call_result(pre, info, post_info, len, result);
+		let call_result = T::analyze_call_result(Some(pre), info, post_info, len, result);
 
 		match call_result {
 			RelayerAccountAction::None => (),
@@ -595,7 +614,7 @@ where
 	}
 }
 
-/// Signed extension that refunds a relayer for new messages coming from a parachain.
+/// Transaction extension that refunds a relayer for new messages coming from a parachain.
 ///
 /// Also refunds relayer for successful finality delivery if it comes in batch (`utility.batchAll`)
 /// with message delivery transaction. Batch may deliver either both relay chain header and
@@ -636,7 +655,7 @@ pub struct RefundBridgedParachainMessages<Runtime, Para, Msgs, Refund, Priority,
 	)>,
 );
 
-impl<Runtime, Para, Msgs, Refund, Priority, Id> RefundSignedExtension
+impl<Runtime, Para, Msgs, Refund, Priority, Id> RefundTransactionExtension
 	for RefundBridgedParachainMessages<Runtime, Para, Msgs, Refund, Priority, Id>
 where
 	Self: 'static + Send + Sync,
@@ -730,13 +749,13 @@ where
 	}
 }
 
-/// Signed extension that refunds a relayer for new messages coming from a standalone (GRANDPA)
+/// Transaction extension that refunds a relayer for new messages coming from a standalone (GRANDPA)
 /// chain.
 ///
 /// Also refunds relayer for successful finality delivery if it comes in batch (`utility.batchAll`)
 /// with message delivery transaction. Batch may deliver either both relay chain header and
-/// parachain head, or just parachain head. Corresponding headers must be used in messages
-/// proof verification.
+/// parachain head, or just parachain head. Corresponding headers must be used in messages proof
+/// verification.
 ///
 /// Extension does not refund transaction tip due to security reasons.
 #[derive(
@@ -771,7 +790,7 @@ pub struct RefundBridgedGrandpaMessages<Runtime, GrandpaInstance, Msgs, Refund,
 	)>,
 );
 
-impl<Runtime, GrandpaInstance, Msgs, Refund, Priority, Id> RefundSignedExtension
+impl<Runtime, GrandpaInstance, Msgs, Refund, Priority, Id> RefundTransactionExtension
 	for RefundBridgedGrandpaMessages<Runtime, GrandpaInstance, Msgs, Refund, Priority, Id>
 where
 	Self: 'static + Send + Sync,
@@ -869,8 +888,8 @@ mod tests {
 		Call as ParachainsCall, Pallet as ParachainsPallet, RelayBlockHash,
 	};
 	use sp_runtime::{
-		traits::{ConstU64, Header as HeaderT},
-		transaction_validity::{InvalidTransaction, ValidTransaction},
+		traits::{ConstU64, DispatchTransaction, Header as HeaderT},
+		transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction},
 		DispatchError,
 	};
 
@@ -899,7 +918,7 @@ mod tests {
 		ConstU64<1>,
 		StrTestExtension,
 	>;
-	type TestGrandpaExtension = RefundSignedExtensionAdapter<TestGrandpaExtensionProvider>;
+	type TestGrandpaExtension = RefundTransactionExtensionAdapter<TestGrandpaExtensionProvider>;
 	type TestExtensionProvider = RefundBridgedParachainMessages<
 		TestRuntime,
 		DefaultRefundableParachainId<(), TestParachain>,
@@ -908,7 +927,7 @@ mod tests {
 		ConstU64<1>,
 		StrTestExtension,
 	>;
-	type TestExtension = RefundSignedExtensionAdapter<TestExtensionProvider>;
+	type TestExtension = RefundTransactionExtensionAdapter<TestExtensionProvider>;
 
 	fn initial_balance_of_relayer_account_at_this_chain() -> ThisChainBalance {
 		let test_stake: ThisChainBalance = TestStake::get();
@@ -1407,14 +1426,28 @@ mod tests {
 
 	fn run_validate(call: RuntimeCall) -> TransactionValidity {
 		let extension: TestExtension =
-			RefundSignedExtensionAdapter(RefundBridgedParachainMessages(PhantomData));
-		extension.validate(&relayer_account_at_this_chain(), &call, &DispatchInfo::default(), 0)
+			RefundTransactionExtensionAdapter(RefundBridgedParachainMessages(PhantomData));
+		extension
+			.validate_only(
+				Some(relayer_account_at_this_chain()).into(),
+				&call,
+				&DispatchInfo::default(),
+				0,
+			)
+			.map(|res| res.0)
 	}
 
 	fn run_grandpa_validate(call: RuntimeCall) -> TransactionValidity {
 		let extension: TestGrandpaExtension =
-			RefundSignedExtensionAdapter(RefundBridgedGrandpaMessages(PhantomData));
-		extension.validate(&relayer_account_at_this_chain(), &call, &DispatchInfo::default(), 0)
+			RefundTransactionExtensionAdapter(RefundBridgedGrandpaMessages(PhantomData));
+		extension
+			.validate_only(
+				Some(relayer_account_at_this_chain()).into(),
+				&call,
+				&DispatchInfo::default(),
+				0,
+			)
+			.map(|res| res.0)
 	}
 
 	fn run_validate_ignore_priority(call: RuntimeCall) -> TransactionValidity {
@@ -1428,16 +1461,30 @@ mod tests {
 		call: RuntimeCall,
 	) -> Result<Option<PreDispatchData<ThisChainAccountId>>, TransactionValidityError> {
 		let extension: TestExtension =
-			RefundSignedExtensionAdapter(RefundBridgedParachainMessages(PhantomData));
-		extension.pre_dispatch(&relayer_account_at_this_chain(), &call, &DispatchInfo::default(), 0)
+			RefundTransactionExtensionAdapter(RefundBridgedParachainMessages(PhantomData));
+		extension
+			.validate_and_prepare(
+				Some(relayer_account_at_this_chain()).into(),
+				&call,
+				&DispatchInfo::default(),
+				0,
+			)
+			.map(|(pre, _)| pre)
 	}
 
 	fn run_grandpa_pre_dispatch(
 		call: RuntimeCall,
 	) -> Result<Option<PreDispatchData<ThisChainAccountId>>, TransactionValidityError> {
 		let extension: TestGrandpaExtension =
-			RefundSignedExtensionAdapter(RefundBridgedGrandpaMessages(PhantomData));
-		extension.pre_dispatch(&relayer_account_at_this_chain(), &call, &DispatchInfo::default(), 0)
+			RefundTransactionExtensionAdapter(RefundBridgedGrandpaMessages(PhantomData));
+		extension
+			.validate_and_prepare(
+				Some(relayer_account_at_this_chain()).into(),
+				&call,
+				&DispatchInfo::default(),
+				0,
+			)
+			.map(|(pre, _)| pre)
 	}
 
 	fn dispatch_info() -> DispatchInfo {
@@ -1460,11 +1507,12 @@ mod tests {
 		dispatch_result: DispatchResult,
 	) {
 		let post_dispatch_result = TestExtension::post_dispatch(
-			Some(pre_dispatch_data),
+			pre_dispatch_data,
 			&dispatch_info(),
 			&post_dispatch_info(),
 			1024,
 			&dispatch_result,
+			&(),
 		);
 		assert_eq!(post_dispatch_result, Ok(()));
 	}
diff --git a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs b/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
index c49aa4b8563..f186f6427ae 100644
--- a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
+++ b/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs
@@ -26,7 +26,7 @@ pub use bp_polkadot_core::{
 };
 
 use bp_messages::*;
-use bp_polkadot_core::SuffixedCommonSignedExtension;
+use bp_polkadot_core::SuffixedCommonTransactionExtension;
 use bp_runtime::extensions::{
 	BridgeRejectObsoleteHeadersAndMessages, RefundBridgedParachainMessagesSchema,
 };
@@ -164,7 +164,7 @@ pub const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 1024;
 pub const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 4096;
 
 /// Signed extension that is used by all bridge hubs.
-pub type SignedExtension = SuffixedCommonSignedExtension<(
+pub type TransactionExtension = SuffixedCommonTransactionExtension<(
 	BridgeRejectObsoleteHeadersAndMessages,
 	RefundBridgedParachainMessagesSchema,
 )>;
diff --git a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs b/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
index c4e697fbe95..992ef1bd7a1 100644
--- a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
+++ b/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs
@@ -107,5 +107,5 @@ frame_support::parameter_types! {
 
 	/// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation.
 	/// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`)
-	pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_829_647;
+	pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 5_380_904_835;
 }
diff --git a/bridges/primitives/chain-kusama/src/lib.rs b/bridges/primitives/chain-kusama/src/lib.rs
index e3b4d0520f6..253a1010e83 100644
--- a/bridges/primitives/chain-kusama/src/lib.rs
+++ b/bridges/primitives/chain-kusama/src/lib.rs
@@ -59,8 +59,8 @@ impl ChainWithGrandpa for Kusama {
 	const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
 }
 
-// The SignedExtension used by Kusama.
-pub use bp_polkadot_core::CommonSignedExtension as SignedExtension;
+// The TransactionExtension used by Kusama.
+pub use bp_polkadot_core::CommonTransactionExtension as TransactionExtension;
 
 /// Name of the parachains pallet in the Kusama runtime.
 pub const PARAS_PALLET_NAME: &str = "Paras";
diff --git a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs b/bridges/primitives/chain-polkadot-bulletin/src/lib.rs
index f2eebf93124..73dd122bd15 100644
--- a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs
+++ b/bridges/primitives/chain-polkadot-bulletin/src/lib.rs
@@ -25,7 +25,7 @@ use bp_runtime::{
 	decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis,
 	extensions::{
 		CheckEra, CheckGenesis, CheckNonZeroSender, CheckNonce, CheckSpecVersion, CheckTxVersion,
-		CheckWeight, GenericSignedExtension, GenericSignedExtensionSchema,
+		CheckWeight, GenericTransactionExtension, GenericTransactionExtensionSchema,
 	},
 	Chain, ChainId, TransactionEra,
 };
@@ -37,7 +37,12 @@ use frame_support::{
 };
 use frame_system::limits;
 use scale_info::TypeInfo;
-use sp_runtime::{traits::DispatchInfoOf, transaction_validity::TransactionValidityError, Perbill};
+use sp_runtime::{
+	impl_tx_ext_default,
+	traits::{Dispatchable, TransactionExtensionBase},
+	transaction_validity::TransactionValidityError,
+	Perbill,
+};
 
 // This chain reuses most of Polkadot primitives.
 pub use bp_polkadot_core::{
@@ -71,10 +76,10 @@ pub const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 1024;
 pub const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 4096;
 
 /// This signed extension is used to ensure that the chain transactions are signed by proper
-pub type ValidateSigned = GenericSignedExtensionSchema<(), ()>;
+pub type ValidateSigned = GenericTransactionExtensionSchema<(), ()>;
 
 /// Signed extension schema, used by Polkadot Bulletin.
-pub type SignedExtensionSchema = GenericSignedExtension<(
+pub type TransactionExtensionSchema = GenericTransactionExtension<(
 	(
 		CheckNonZeroSender,
 		CheckSpecVersion,
@@ -87,34 +92,30 @@ pub type SignedExtensionSchema = GenericSignedExtension<(
 	ValidateSigned,
 )>;
 
-/// Signed extension, used by Polkadot Bulletin.
+/// Transaction extension, used by Polkadot Bulletin.
 #[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
-pub struct SignedExtension(SignedExtensionSchema);
+pub struct TransactionExtension(TransactionExtensionSchema);
 
-impl sp_runtime::traits::SignedExtension for SignedExtension {
+impl TransactionExtensionBase for TransactionExtension {
 	const IDENTIFIER: &'static str = "Not needed.";
-	type AccountId = ();
-	type Call = ();
-	type AdditionalSigned =
-		<SignedExtensionSchema as sp_runtime::traits::SignedExtension>::AdditionalSigned;
-	type Pre = ();
+	type Implicit = <TransactionExtensionSchema as TransactionExtensionBase>::Implicit;
 
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
-		self.0.additional_signed()
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+		<TransactionExtensionSchema as TransactionExtensionBase>::implicit(&self.0)
 	}
+}
 
-	fn pre_dispatch(
-		self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
-		_len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		Ok(())
-	}
+impl<C, Context> sp_runtime::traits::TransactionExtension<C, Context> for TransactionExtension
+where
+	C: Dispatchable,
+{
+	type Pre = ();
+	type Val = ();
+
+	impl_tx_ext_default!(C; Context; validate prepare);
 }
 
-impl SignedExtension {
+impl TransactionExtension {
 	/// Create signed extension from its components.
 	pub fn from_params(
 		spec_version: u32,
@@ -123,7 +124,7 @@ impl SignedExtension {
 		genesis_hash: Hash,
 		nonce: Nonce,
 	) -> Self {
-		Self(GenericSignedExtension::new(
+		Self(GenericTransactionExtension::new(
 			(
 				(
 					(),              // non-zero sender
diff --git a/bridges/primitives/chain-polkadot/src/lib.rs b/bridges/primitives/chain-polkadot/src/lib.rs
index fc5e10308a8..e5e2e7c3a04 100644
--- a/bridges/primitives/chain-polkadot/src/lib.rs
+++ b/bridges/primitives/chain-polkadot/src/lib.rs
@@ -61,8 +61,8 @@ impl ChainWithGrandpa for Polkadot {
 	const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
 }
 
-/// The SignedExtension used by Polkadot.
-pub type SignedExtension = SuffixedCommonSignedExtension<PrevalidateAttests>;
+/// The TransactionExtension used by Polkadot.
+pub type TransactionExtension = SuffixedCommonTransactionExtension<PrevalidateAttests>;
 
 /// Name of the parachains pallet in the Polkadot runtime.
 pub const PARAS_PALLET_NAME: &str = "Paras";
diff --git a/bridges/primitives/chain-rococo/src/lib.rs b/bridges/primitives/chain-rococo/src/lib.rs
index f1b256f0f09..267c6b2b1f0 100644
--- a/bridges/primitives/chain-rococo/src/lib.rs
+++ b/bridges/primitives/chain-rococo/src/lib.rs
@@ -59,8 +59,8 @@ impl ChainWithGrandpa for Rococo {
 	const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
 }
 
-// The SignedExtension used by Rococo.
-pub use bp_polkadot_core::CommonSignedExtension as SignedExtension;
+// The TransactionExtension used by Rococo.
+pub use bp_polkadot_core::CommonTransactionExtension as TransactionExtension;
 
 /// Name of the parachains pallet in the Rococo runtime.
 pub const PARAS_PALLET_NAME: &str = "Paras";
diff --git a/bridges/primitives/chain-westend/src/lib.rs b/bridges/primitives/chain-westend/src/lib.rs
index f03fd2160a7..afa02e8ee54 100644
--- a/bridges/primitives/chain-westend/src/lib.rs
+++ b/bridges/primitives/chain-westend/src/lib.rs
@@ -59,8 +59,8 @@ impl ChainWithGrandpa for Westend {
 	const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE;
 }
 
-// The SignedExtension used by Westend.
-pub use bp_polkadot_core::CommonSignedExtension as SignedExtension;
+// The TransactionExtension used by Westend.
+pub use bp_polkadot_core::CommonTransactionExtension as TransactionExtension;
 
 /// Name of the parachains pallet in the Rococo runtime.
 pub const PARAS_PALLET_NAME: &str = "Paras";
diff --git a/bridges/primitives/polkadot-core/src/lib.rs b/bridges/primitives/polkadot-core/src/lib.rs
index df2836495bb..d59b99db4b5 100644
--- a/bridges/primitives/polkadot-core/src/lib.rs
+++ b/bridges/primitives/polkadot-core/src/lib.rs
@@ -24,8 +24,8 @@ use bp_runtime::{
 	self,
 	extensions::{
 		ChargeTransactionPayment, CheckEra, CheckGenesis, CheckNonZeroSender, CheckNonce,
-		CheckSpecVersion, CheckTxVersion, CheckWeight, GenericSignedExtension,
-		SignedExtensionSchema,
+		CheckSpecVersion, CheckTxVersion, CheckWeight, GenericTransactionExtension,
+		TransactionExtensionSchema,
 	},
 	EncodedOrDecodedCall, StorageMapKeyProvider, TransactionEra,
 };
@@ -229,8 +229,12 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 pub type Balance = u128;
 
 /// Unchecked Extrinsic type.
-pub type UncheckedExtrinsic<Call, SignedExt> =
-	generic::UncheckedExtrinsic<AccountAddress, EncodedOrDecodedCall<Call>, Signature, SignedExt>;
+pub type UncheckedExtrinsic<Call, TransactionExt> = generic::UncheckedExtrinsic<
+	AccountAddress,
+	EncodedOrDecodedCall<Call>,
+	Signature,
+	TransactionExt,
+>;
 
 /// Account address, used by the Polkadot-like chain.
 pub type Address = MultiAddress<AccountId, ()>;
@@ -275,7 +279,7 @@ impl AccountInfoStorageMapKeyProvider {
 }
 
 /// Extra signed extension data that is used by most chains.
-pub type CommonSignedExtra = (
+pub type CommonTransactionExtra = (
 	CheckNonZeroSender,
 	CheckSpecVersion,
 	CheckTxVersion,
@@ -286,12 +290,12 @@ pub type CommonSignedExtra = (
 	ChargeTransactionPayment<Balance>,
 );
 
-/// Extra signed extension data that starts with `CommonSignedExtra`.
-pub type SuffixedCommonSignedExtension<Suffix> =
-	GenericSignedExtension<(CommonSignedExtra, Suffix)>;
+/// Extra transaction extension data that starts with `CommonTransactionExtra`.
+pub type SuffixedCommonTransactionExtension<Suffix> =
+	GenericTransactionExtension<(CommonTransactionExtra, Suffix)>;
 
-/// Helper trait to define some extra methods on `SuffixedCommonSignedExtension`.
-pub trait SuffixedCommonSignedExtensionExt<Suffix: SignedExtensionSchema> {
+/// Helper trait to define some extra methods on `SuffixedCommonTransactionExtension`.
+pub trait SuffixedCommonTransactionExtensionExt<Suffix: TransactionExtensionSchema> {
 	/// Create signed extension from its components.
 	fn from_params(
 		spec_version: u32,
@@ -300,7 +304,7 @@ pub trait SuffixedCommonSignedExtensionExt<Suffix: SignedExtensionSchema> {
 		genesis_hash: Hash,
 		nonce: Nonce,
 		tip: Balance,
-		extra: (Suffix::Payload, Suffix::AdditionalSigned),
+		extra: (Suffix::Payload, Suffix::Implicit),
 	) -> Self;
 
 	/// Return transaction nonce.
@@ -310,9 +314,10 @@ pub trait SuffixedCommonSignedExtensionExt<Suffix: SignedExtensionSchema> {
 	fn tip(&self) -> Balance;
 }
 
-impl<Suffix> SuffixedCommonSignedExtensionExt<Suffix> for SuffixedCommonSignedExtension<Suffix>
+impl<Suffix> SuffixedCommonTransactionExtensionExt<Suffix>
+	for SuffixedCommonTransactionExtension<Suffix>
 where
-	Suffix: SignedExtensionSchema,
+	Suffix: TransactionExtensionSchema,
 {
 	fn from_params(
 		spec_version: u32,
@@ -321,9 +326,9 @@ where
 		genesis_hash: Hash,
 		nonce: Nonce,
 		tip: Balance,
-		extra: (Suffix::Payload, Suffix::AdditionalSigned),
+		extra: (Suffix::Payload, Suffix::Implicit),
 	) -> Self {
-		GenericSignedExtension::new(
+		GenericTransactionExtension::new(
 			(
 				(
 					(),              // non-zero sender
@@ -365,7 +370,7 @@ where
 }
 
 /// Signed extension that is used by most chains.
-pub type CommonSignedExtension = SuffixedCommonSignedExtension<()>;
+pub type CommonTransactionExtension = SuffixedCommonTransactionExtension<()>;
 
 #[cfg(test)]
 mod tests {
diff --git a/bridges/primitives/runtime/src/extensions.rs b/bridges/primitives/runtime/src/extensions.rs
index d896bc92eff..a31e7b5bb47 100644
--- a/bridges/primitives/runtime/src/extensions.rs
+++ b/bridges/primitives/runtime/src/extensions.rs
@@ -20,135 +20,138 @@ use codec::{Compact, Decode, Encode};
 use impl_trait_for_tuples::impl_for_tuples;
 use scale_info::{StaticTypeInfo, TypeInfo};
 use sp_runtime::{
-	traits::{DispatchInfoOf, SignedExtension},
+	impl_tx_ext_default,
+	traits::{Dispatchable, TransactionExtension, TransactionExtensionBase},
 	transaction_validity::TransactionValidityError,
 };
 use sp_std::{fmt::Debug, marker::PhantomData};
 
-/// Trait that describes some properties of a `SignedExtension` that are needed in order to send a
-/// transaction to the chain.
-pub trait SignedExtensionSchema: Encode + Decode + Debug + Eq + Clone + StaticTypeInfo {
+/// Trait that describes some properties of a `TransactionExtension` that are needed in order to
+/// send a transaction to the chain.
+pub trait TransactionExtensionSchema:
+	Encode + Decode + Debug + Eq + Clone + StaticTypeInfo
+{
 	/// A type of the data encoded as part of the transaction.
 	type Payload: Encode + Decode + Debug + Eq + Clone + StaticTypeInfo;
 	/// Parameters which are part of the payload used to produce transaction signature,
 	/// but don't end up in the transaction itself (i.e. inherent part of the runtime).
-	type AdditionalSigned: Encode + Debug + Eq + Clone + StaticTypeInfo;
+	type Implicit: Encode + Decode + Debug + Eq + Clone + StaticTypeInfo;
 }
 
-impl SignedExtensionSchema for () {
+impl TransactionExtensionSchema for () {
 	type Payload = ();
-	type AdditionalSigned = ();
+	type Implicit = ();
 }
 
-/// An implementation of `SignedExtensionSchema` using generic params.
+/// An implementation of `TransactionExtensionSchema` using generic params.
 #[derive(Encode, Decode, Clone, Debug, PartialEq, Eq, TypeInfo)]
-pub struct GenericSignedExtensionSchema<P, S>(PhantomData<(P, S)>);
+pub struct GenericTransactionExtensionSchema<P, S>(PhantomData<(P, S)>);
 
-impl<P, S> SignedExtensionSchema for GenericSignedExtensionSchema<P, S>
+impl<P, S> TransactionExtensionSchema for GenericTransactionExtensionSchema<P, S>
 where
 	P: Encode + Decode + Debug + Eq + Clone + StaticTypeInfo,
-	S: Encode + Debug + Eq + Clone + StaticTypeInfo,
+	S: Encode + Decode + Debug + Eq + Clone + StaticTypeInfo,
 {
 	type Payload = P;
-	type AdditionalSigned = S;
+	type Implicit = S;
 }
 
-/// The `SignedExtensionSchema` for `frame_system::CheckNonZeroSender`.
-pub type CheckNonZeroSender = GenericSignedExtensionSchema<(), ()>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckNonZeroSender`.
+pub type CheckNonZeroSender = GenericTransactionExtensionSchema<(), ()>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckSpecVersion`.
-pub type CheckSpecVersion = GenericSignedExtensionSchema<(), u32>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckSpecVersion`.
+pub type CheckSpecVersion = GenericTransactionExtensionSchema<(), u32>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckTxVersion`.
-pub type CheckTxVersion = GenericSignedExtensionSchema<(), u32>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckTxVersion`.
+pub type CheckTxVersion = GenericTransactionExtensionSchema<(), u32>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckGenesis`.
-pub type CheckGenesis<Hash> = GenericSignedExtensionSchema<(), Hash>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckGenesis`.
+pub type CheckGenesis<Hash> = GenericTransactionExtensionSchema<(), Hash>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckEra`.
-pub type CheckEra<Hash> = GenericSignedExtensionSchema<sp_runtime::generic::Era, Hash>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckEra`.
+pub type CheckEra<Hash> = GenericTransactionExtensionSchema<sp_runtime::generic::Era, Hash>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckNonce`.
-pub type CheckNonce<TxNonce> = GenericSignedExtensionSchema<Compact<TxNonce>, ()>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckNonce`.
+pub type CheckNonce<TxNonce> = GenericTransactionExtensionSchema<Compact<TxNonce>, ()>;
 
-/// The `SignedExtensionSchema` for `frame_system::CheckWeight`.
-pub type CheckWeight = GenericSignedExtensionSchema<(), ()>;
+/// The `TransactionExtensionSchema` for `frame_system::CheckWeight`.
+pub type CheckWeight = GenericTransactionExtensionSchema<(), ()>;
 
-/// The `SignedExtensionSchema` for `pallet_transaction_payment::ChargeTransactionPayment`.
-pub type ChargeTransactionPayment<Balance> = GenericSignedExtensionSchema<Compact<Balance>, ()>;
+/// The `TransactionExtensionSchema` for `pallet_transaction_payment::ChargeTransactionPayment`.
+pub type ChargeTransactionPayment<Balance> =
+	GenericTransactionExtensionSchema<Compact<Balance>, ()>;
 
-/// The `SignedExtensionSchema` for `polkadot-runtime-common::PrevalidateAttests`.
-pub type PrevalidateAttests = GenericSignedExtensionSchema<(), ()>;
+/// The `TransactionExtensionSchema` for `polkadot-runtime-common::PrevalidateAttests`.
+pub type PrevalidateAttests = GenericTransactionExtensionSchema<(), ()>;
 
-/// The `SignedExtensionSchema` for `BridgeRejectObsoleteHeadersAndMessages`.
-pub type BridgeRejectObsoleteHeadersAndMessages = GenericSignedExtensionSchema<(), ()>;
+/// The `TransactionExtensionSchema` for `BridgeRejectObsoleteHeadersAndMessages`.
+pub type BridgeRejectObsoleteHeadersAndMessages = GenericTransactionExtensionSchema<(), ()>;
 
-/// The `SignedExtensionSchema` for `RefundBridgedParachainMessages`.
+/// The `TransactionExtensionSchema` for `RefundBridgedParachainMessages`.
 /// This schema is dedicated for `RefundBridgedParachainMessages` signed extension as
 /// wildcard/placeholder, which relies on the scale encoding for `()` or `((), ())`, or `((), (),
 /// ())` is the same. So runtime can contains any kind of tuple:
 /// `(BridgeRefundBridgeHubRococoMessages)`
 /// `(BridgeRefundBridgeHubRococoMessages, BridgeRefundBridgeHubWestendMessages)`
 /// `(BridgeRefundParachainMessages1, ..., BridgeRefundParachainMessagesN)`
-pub type RefundBridgedParachainMessagesSchema = GenericSignedExtensionSchema<(), ()>;
+pub type RefundBridgedParachainMessagesSchema = GenericTransactionExtensionSchema<(), ()>;
 
 #[impl_for_tuples(1, 12)]
-impl SignedExtensionSchema for Tuple {
+impl TransactionExtensionSchema for Tuple {
 	for_tuples!( type Payload = ( #( Tuple::Payload ),* ); );
-	for_tuples!( type AdditionalSigned = ( #( Tuple::AdditionalSigned ),* ); );
+	for_tuples!( type Implicit = ( #( Tuple::Implicit ),* ); );
 }
 
 /// A simplified version of signed extensions meant for producing signed transactions
 /// and signed payloads in the client code.
 #[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
-pub struct GenericSignedExtension<S: SignedExtensionSchema> {
+pub struct GenericTransactionExtension<S: TransactionExtensionSchema> {
 	/// A payload that is included in the transaction.
 	pub payload: S::Payload,
 	#[codec(skip)]
 	// It may be set to `None` if extensions are decoded. We are never reconstructing transactions
-	// (and it makes no sense to do that) => decoded version of `SignedExtensions` is only used to
-	// read fields of the `payload`. And when resigning transaction, we're reconstructing
-	// `SignedExtensions` from scratch.
-	additional_signed: Option<S::AdditionalSigned>,
+	// (and it makes no sense to do that) => decoded version of `TransactionExtensions` is only
+	// used to read fields of the `payload`. And when resigning transaction, we're reconstructing
+	// `TransactionExtensions` from scratch.
+	implicit: Option<S::Implicit>,
 }
 
-impl<S: SignedExtensionSchema> GenericSignedExtension<S> {
-	/// Create new `GenericSignedExtension` object.
-	pub fn new(payload: S::Payload, additional_signed: Option<S::AdditionalSigned>) -> Self {
-		Self { payload, additional_signed }
+impl<S: TransactionExtensionSchema> GenericTransactionExtension<S> {
+	/// Create new `GenericTransactionExtension` object.
+	pub fn new(payload: S::Payload, implicit: Option<S::Implicit>) -> Self {
+		Self { payload, implicit }
 	}
 }
 
-impl<S> SignedExtension for GenericSignedExtension<S>
+impl<S> TransactionExtensionBase for GenericTransactionExtension<S>
 where
-	S: SignedExtensionSchema,
+	S: TransactionExtensionSchema,
 	S::Payload: Send + Sync,
-	S::AdditionalSigned: Send + Sync,
+	S::Implicit: Send + Sync,
 {
 	const IDENTIFIER: &'static str = "Not needed.";
-	type AccountId = ();
-	type Call = ();
-	type AdditionalSigned = S::AdditionalSigned;
-	type Pre = ();
+	type Implicit = S::Implicit;
 
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
 		// we shall not ever see this error in relay, because we are never signing decoded
 		// transactions. Instead we're constructing and signing new transactions. So the error code
 		// is kinda random here
-		self.additional_signed.clone().ok_or(
-			frame_support::unsigned::TransactionValidityError::Unknown(
+		self.implicit
+			.clone()
+			.ok_or(frame_support::unsigned::TransactionValidityError::Unknown(
 				frame_support::unsigned::UnknownTransaction::Custom(0xFF),
-			),
-		)
+			))
 	}
+}
+impl<S, C, Context> TransactionExtension<C, Context> for GenericTransactionExtension<S>
+where
+	C: Dispatchable,
+	S: TransactionExtensionSchema,
+	S::Payload: Send + Sync,
+	S::Implicit: Send + Sync,
+{
+	type Pre = ();
+	type Val = ();
 
-	fn pre_dispatch(
-		self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
-		_len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		Ok(())
-	}
+	impl_tx_ext_default!(C; Context; validate prepare);
 }
diff --git a/bridges/snowbridge/runtime/test-common/Cargo.toml b/bridges/snowbridge/runtime/test-common/Cargo.toml
index 4e8b311cb97..5f169e82f49 100644
--- a/bridges/snowbridge/runtime/test-common/Cargo.toml
+++ b/bridges/snowbridge/runtime/test-common/Cargo.toml
@@ -181,6 +181,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachain-template/runtime/Cargo.toml b/cumulus/parachain-template/runtime/Cargo.toml
index 1873bd0a23e..60d8d6f5136 100644
--- a/cumulus/parachain-template/runtime/Cargo.toml
+++ b/cumulus/parachain-template/runtime/Cargo.toml
@@ -138,6 +138,7 @@ runtime-benchmarks = [
 	"cumulus-pallet-session-benchmarking/runtime-benchmarks",
 	"cumulus-pallet-xcmp-queue/runtime-benchmarks",
 	"cumulus-primitives-core/runtime-benchmarks",
+	"cumulus-primitives-storage-weight-reclaim/runtime-benchmarks",
 	"cumulus-primitives-utility/runtime-benchmarks",
 	"frame-benchmarking/runtime-benchmarks",
 	"frame-support/runtime-benchmarks",
@@ -150,6 +151,7 @@ runtime-benchmarks = [
 	"pallet-parachain-template/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
diff --git a/cumulus/parachain-template/runtime/src/lib.rs b/cumulus/parachain-template/runtime/src/lib.rs
index 004a5d70ebc..f7754e594e6 100644
--- a/cumulus/parachain-template/runtime/src/lib.rs
+++ b/cumulus/parachain-template/runtime/src/lib.rs
@@ -97,8 +97,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -112,7 +112,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
@@ -353,6 +353,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = ();
 }
 
 impl pallet_sudo::Config for Runtime {
@@ -529,6 +530,7 @@ construct_runtime!(
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_session, SessionBench::<Runtime>]
 		[pallet_timestamp, Timestamp]
@@ -712,6 +714,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 
 			let mut list = Vec::<BenchmarkList>::new();
@@ -727,6 +730,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{BenchmarkError, Benchmarking, BenchmarkBatch};
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml
index 05936e93993..3eb63a24b74 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml
@@ -119,6 +119,7 @@ runtime-benchmarks = [
 	"frame-support/runtime-benchmarks",
 	"frame-system-benchmarking/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
+	"pallet-asset-conversion-tx-payment/runtime-benchmarks",
 	"pallet-asset-conversion/runtime-benchmarks",
 	"pallet-assets/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
@@ -130,6 +131,7 @@ runtime-benchmarks = [
 	"pallet-proxy/runtime-benchmarks",
 	"pallet-state-trie-migration/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-uniques/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs
index 17a12dd2f6f..32966ab6341 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs
@@ -178,6 +178,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
@@ -234,6 +235,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -761,6 +763,9 @@ impl pallet_asset_conversion_tx_payment::Config for Runtime {
 	type Fungibles = LocalAndForeignAssets;
 	type OnChargeAssetTransaction =
 		AssetConversionAdapter<Balances, AssetConversion, TokenLocationV3>;
+	type WeightInfo = weights::pallet_asset_conversion_tx_payment::WeightInfo<Runtime>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = AssetConversionTxHelper;
 }
 
 parameter_types! {
@@ -948,8 +953,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -961,7 +966,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
 	pallet_collator_selection::migration::v1::MigrateToV1<Runtime>,
@@ -1034,14 +1039,77 @@ pub type Executive = frame_executive::Executive<
 	Migrations,
 >;
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct AssetConversionTxHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl
+	pallet_asset_conversion_tx_payment::BenchmarkHelperTrait<
+		AccountId,
+		xcm::v3::MultiLocation,
+		xcm::v3::MultiLocation,
+	> for AssetConversionTxHelper
+{
+	fn create_asset_id_parameter(seed: u32) -> (xcm::v3::MultiLocation, xcm::v3::MultiLocation) {
+		// Use a different parachain' foreign assets pallet so that the asset is indeed foreign.
+		let asset_id = xcm::v3::MultiLocation::new(
+			1,
+			xcm::v3::Junctions::X3(
+				xcm::v3::Junction::Parachain(3000),
+				xcm::v3::Junction::PalletInstance(53),
+				xcm::v3::Junction::GeneralIndex(seed.into()),
+			),
+		);
+		(asset_id, asset_id)
+	}
+
+	fn setup_balances_and_pool(asset_id: xcm::v3::MultiLocation, account: AccountId) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		assert_ok!(ForeignAssets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			account.clone().into(), /* owner */
+			true,                   /* is_sufficient */
+			1,
+		));
+
+		let lp_provider = account.clone();
+		use frame_support::traits::Currency;
+		let _ = Balances::deposit_creating(&lp_provider, u64::MAX.into());
+		assert_ok!(ForeignAssets::mint_into(asset_id.into(), &lp_provider, u64::MAX.into()));
+
+		let token_native = Box::new(TokenLocationV3::get());
+		let token_second = Box::new(asset_id);
+
+		assert_ok!(AssetConversion::create_pool(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native.clone(),
+			token_second.clone()
+		));
+
+		assert_ok!(AssetConversion::add_liquidity(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native,
+			token_second,
+			(u32::MAX / 8).into(), // 1 desired
+			u32::MAX.into(),       // 2 desired
+			1,                     // 1 min
+			1,                     // 2 min
+			lp_provider,
+		));
+	}
+}
+
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_assets, Local]
 		[pallet_assets, Foreign]
 		[pallet_assets, Pool]
 		[pallet_asset_conversion, AssetConversion]
+		[pallet_asset_conversion_tx_payment, AssetTxPayment]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
@@ -1052,6 +1120,7 @@ mod benches {
 		[pallet_uniques, Uniques]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_collator_selection, CollatorSelection]
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[cumulus_pallet_xcmp_queue, XcmpQueue]
@@ -1302,6 +1371,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 			use pallet_xcm_bridge_hub_router::benchmarking::Pallet as XcmBridgeHubRouterBench;
@@ -1336,6 +1406,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..ed2c5f3056e
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
+// --chain=asset-hub-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_637_000 picoseconds.
+		Weight::from_parts(6_382_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_841_000 picoseconds.
+		Weight::from_parts(8_776_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 561_000 picoseconds.
+		Weight::from_parts(2_705_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_316_000 picoseconds.
+		Weight::from_parts(5_771_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 511_000 picoseconds.
+		Weight::from_parts(2_575_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_687_000 picoseconds.
+		Weight::from_parts(6_192_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/mod.rs
index fa9e86102c6..134b5341a40 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/mod.rs
@@ -19,7 +19,9 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_asset_conversion;
+pub mod pallet_asset_conversion_tx_payment;
 pub mod pallet_assets_foreign;
 pub mod pallet_assets_local;
 pub mod pallet_assets_pool;
@@ -32,6 +34,7 @@ pub mod pallet_nfts;
 pub mod pallet_proxy;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_uniques;
 pub mod pallet_utility;
 pub mod pallet_xcm;
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_asset_conversion_tx_payment.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_asset_conversion_tx_payment.rs
new file mode 100644
index 00000000000..0a639b368af
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_asset_conversion_tx_payment.rs
@@ -0,0 +1,92 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_asset_conversion_tx_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2024-01-04, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `Georges-MacBook-Pro.local`, CPU: `<UNKNOWN>`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/debug/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_asset_conversion_tx_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
+// --chain=asset-hub-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_asset_conversion_tx_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_asset_conversion_tx_payment::WeightInfo for WeightInfo<T> {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 7_000_000 picoseconds.
+		Weight::from_parts(10_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 209_000_000 picoseconds.
+		Weight::from_parts(212_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
+	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`)
+	/// Storage: `ForeignAssets::Account` (r:2 w:2)
+	/// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `631`
+		//  Estimated: `7404`
+		// Minimum execution time: 1_228_000_000 picoseconds.
+		Weight::from_parts(1_268_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 7404))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(4))
+	}
+}
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..035f9a6dbe5
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
+// --chain=asset-hub-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 33_363_000 picoseconds.
+		Weight::from_parts(38_793_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml
index 78c48507a7a..c10e02bd8a6 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml
@@ -110,6 +110,7 @@ runtime-benchmarks = [
 	"frame-system-benchmarking/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
 	"hex-literal",
+	"pallet-asset-conversion-tx-payment/runtime-benchmarks",
 	"pallet-asset-conversion/runtime-benchmarks",
 	"pallet-assets/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
@@ -120,6 +121,7 @@ runtime-benchmarks = [
 	"pallet-nfts/runtime-benchmarks",
 	"pallet-proxy/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-uniques/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs
index 1ead2897855..5246828da31 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs
@@ -162,6 +162,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
@@ -218,6 +219,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -735,6 +737,9 @@ impl pallet_asset_conversion_tx_payment::Config for Runtime {
 	type Fungibles = LocalAndForeignAssets;
 	type OnChargeAssetTransaction =
 		AssetConversionAdapter<Balances, AssetConversion, WestendLocationV3>;
+	type WeightInfo = weights::pallet_asset_conversion_tx_payment::WeightInfo<Runtime>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = AssetConversionTxHelper;
 }
 
 parameter_types! {
@@ -920,8 +925,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -933,7 +938,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -1065,14 +1070,77 @@ pub type Executive = frame_executive::Executive<
 	Migrations,
 >;
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct AssetConversionTxHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl
+	pallet_asset_conversion_tx_payment::BenchmarkHelperTrait<
+		AccountId,
+		xcm::v3::MultiLocation,
+		xcm::v3::MultiLocation,
+	> for AssetConversionTxHelper
+{
+	fn create_asset_id_parameter(seed: u32) -> (xcm::v3::MultiLocation, xcm::v3::MultiLocation) {
+		// Use a different parachain' foreign assets pallet so that the asset is indeed foreign.
+		let asset_id = xcm::v3::MultiLocation::new(
+			1,
+			xcm::v3::Junctions::X3(
+				xcm::v3::Junction::Parachain(3000),
+				xcm::v3::Junction::PalletInstance(53),
+				xcm::v3::Junction::GeneralIndex(seed.into()),
+			),
+		);
+		(asset_id, asset_id)
+	}
+
+	fn setup_balances_and_pool(asset_id: xcm::v3::MultiLocation, account: AccountId) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		assert_ok!(ForeignAssets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			account.clone().into(), /* owner */
+			true,                   /* is_sufficient */
+			1,
+		));
+
+		let lp_provider = account.clone();
+		use frame_support::traits::Currency;
+		let _ = Balances::deposit_creating(&lp_provider, u64::MAX.into());
+		assert_ok!(ForeignAssets::mint_into(asset_id.into(), &lp_provider, u64::MAX.into()));
+
+		let token_native = Box::new(xcm::v3::MultiLocation::new(1, xcm::v3::Junctions::Here));
+		let token_second = Box::new(asset_id);
+
+		assert_ok!(AssetConversion::create_pool(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native.clone(),
+			token_second.clone()
+		));
+
+		assert_ok!(AssetConversion::add_liquidity(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native,
+			token_second,
+			(u32::MAX / 2).into(), // 1 desired
+			u32::MAX.into(),       // 2 desired
+			1,                     // 1 min
+			1,                     // 2 min
+			lp_provider,
+		));
+	}
+}
+
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_assets, Local]
 		[pallet_assets, Foreign]
 		[pallet_assets, Pool]
 		[pallet_asset_conversion, AssetConversion]
+		[pallet_asset_conversion_tx_payment, AssetTxPayment]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
@@ -1083,6 +1151,7 @@ mod benches {
 		[pallet_uniques, Uniques]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_collator_selection, CollatorSelection]
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[cumulus_pallet_xcmp_queue, XcmpQueue]
@@ -1379,6 +1448,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 			use pallet_xcm_bridge_hub_router::benchmarking::Pallet as XcmBridgeHubRouterBench;
@@ -1413,6 +1483,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..46f4f2bfd96
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/
+// --chain=asset-hub-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_206_000 picoseconds.
+		Weight::from_parts(6_212_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_851_000 picoseconds.
+		Weight::from_parts(8_847_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 631_000 picoseconds.
+		Weight::from_parts(3_086_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_446_000 picoseconds.
+		Weight::from_parts(5_911_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 481_000 picoseconds.
+		Weight::from_parts(2_916_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_927_000 picoseconds.
+		Weight::from_parts(6_613_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/mod.rs
index 2f1fcfb05f3..691ed2e5730 100644
--- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/mod.rs
@@ -18,7 +18,9 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_asset_conversion;
+pub mod pallet_asset_conversion_tx_payment;
 pub mod pallet_assets_foreign;
 pub mod pallet_assets_local;
 pub mod pallet_assets_pool;
@@ -31,6 +33,7 @@ pub mod pallet_nfts;
 pub mod pallet_proxy;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_uniques;
 pub mod pallet_utility;
 pub mod pallet_xcm;
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_asset_conversion_tx_payment.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_asset_conversion_tx_payment.rs
new file mode 100644
index 00000000000..8fe302630fb
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_asset_conversion_tx_payment.rs
@@ -0,0 +1,92 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_asset_conversion_tx_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2024-01-04, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `Georges-MacBook-Pro.local`, CPU: `<UNKNOWN>`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/debug/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_asset_conversion_tx_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/
+// --chain=asset-hub-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_asset_conversion_tx_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_asset_conversion_tx_payment::WeightInfo for WeightInfo<T> {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 8_000_000 picoseconds.
+		Weight::from_parts(9_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 214_000_000 picoseconds.
+		Weight::from_parts(219_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
+	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(808), added: 3283, mode: `MaxEncodedLen`)
+	/// Storage: `ForeignAssets::Account` (r:2 w:2)
+	/// Proof: `ForeignAssets::Account` (`max_values`: None, `max_size`: Some(732), added: 3207, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `631`
+		//  Estimated: `7404`
+		// Minimum execution time: 1_211_000_000 picoseconds.
+		Weight::from_parts(1_243_000_000, 0)
+			.saturating_add(Weight::from_parts(0, 7404))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(4))
+	}
+}
diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..b4c78a78b48
--- /dev/null
+++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/
+// --chain=asset-hub-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 40_847_000 picoseconds.
+		Weight::from_parts(49_674_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml
index 7a1951fd24b..242627815d3 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml
@@ -242,6 +242,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm-bridge-hub/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs
index 6dbf96edc2a..323e6ed65e6 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs
@@ -40,7 +40,7 @@ use bridge_runtime_common::{
 		XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge,
 	},
 	refund_relayer_extension::{
-		ActualFeeRefund, RefundBridgedGrandpaMessages, RefundSignedExtensionAdapter,
+		ActualFeeRefund, RefundBridgedGrandpaMessages, RefundTransactionExtensionAdapter,
 		RefundableMessagesLane,
 	},
 };
@@ -168,7 +168,7 @@ impl messages::BridgedChainWithMessages for RococoBulletin {}
 
 /// Signed extension that refunds relayers that are delivering messages from the Rococo Bulletin
 /// chain.
-pub type OnBridgeHubRococoRefundRococoBulletinMessages = RefundSignedExtensionAdapter<
+pub type OnBridgeHubRococoRefundRococoBulletinMessages = RefundTransactionExtensionAdapter<
 	RefundBridgedGrandpaMessages<
 		Runtime,
 		BridgeGrandpaRococoBulletinInstance,
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs
index 5d55d7afbac..05d1aa188d2 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs
@@ -39,7 +39,7 @@ use bridge_runtime_common::{
 		XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge,
 	},
 	refund_relayer_extension::{
-		ActualFeeRefund, RefundBridgedParachainMessages, RefundSignedExtensionAdapter,
+		ActualFeeRefund, RefundBridgedParachainMessages, RefundTransactionExtensionAdapter,
 		RefundableMessagesLane, RefundableParachain,
 	},
 };
@@ -173,7 +173,7 @@ impl UnderlyingChainProvider for BridgeHubWestend {
 impl messages::BridgedChainWithMessages for BridgeHubWestend {}
 
 /// Signed extension that refunds relayers that are delivering messages from the Westend parachain.
-pub type OnBridgeHubRococoRefundBridgeHubWestendMessages = RefundSignedExtensionAdapter<
+pub type OnBridgeHubRococoRefundBridgeHubWestendMessages = RefundTransactionExtensionAdapter<
 	RefundBridgedParachainMessages<
 		Runtime,
 		RefundableParachain<
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
index 0b48d1717fa..16e3b2e8600 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
@@ -115,8 +115,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The TransactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -134,7 +134,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -262,6 +262,8 @@ impl frame_system::Config for Runtime {
 	type DbWeight = RocksDbWeight;
 	/// Weight information for the extrinsics of this pallet.
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	/// Weight information for the extensions of this pallet.
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	/// Block & extrinsics weights: base values and limits.
 	type BlockWeights = RuntimeBlockWeights;
 	/// The maximum length of a block (in bytes).
@@ -324,6 +326,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -759,12 +762,14 @@ bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! {
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
 		[pallet_session, SessionBench::<Runtime>]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_collator_selection, CollatorSelection]
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[cumulus_pallet_xcmp_queue, XcmpQueue]
@@ -1065,6 +1070,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 
@@ -1095,6 +1101,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
@@ -1478,16 +1485,16 @@ mod tests {
 	use codec::Encode;
 	use sp_runtime::{
 		generic::Era,
-		traits::{SignedExtension, Zero},
+		traits::{TransactionExtensionBase, Zero},
 	};
 
 	#[test]
 	fn ensure_signed_extension_definition_is_compatible_with_relay() {
-		use bp_polkadot_core::SuffixedCommonSignedExtensionExt;
+		use bp_polkadot_core::SuffixedCommonTransactionExtensionExt;
 
 		sp_io::TestExternalities::default().execute_with(|| {
 			frame_system::BlockHash::<Runtime>::insert(BlockNumber::zero(), Hash::default());
-			let payload: SignedExtra = (
+			let payload: TxExtension = (
 				frame_system::CheckNonZeroSender::new(),
 				frame_system::CheckSpecVersion::new(),
 				frame_system::CheckTxVersion::new(),
@@ -1501,11 +1508,11 @@ mod tests {
 					bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),
 					bridge_to_bulletin_config::OnBridgeHubRococoRefundRococoBulletinMessages::default(),
 				)
-			);
+			).into();
 
 			// for BridgeHubRococo
 			{
-				let bhr_indirect_payload = bp_bridge_hub_rococo::SignedExtension::from_params(
+				let bhr_indirect_payload = bp_bridge_hub_rococo::TransactionExtension::from_params(
 					VERSION.spec_version,
 					VERSION.transaction_version,
 					bp_runtime::TransactionEra::Immortal,
@@ -1516,8 +1523,8 @@ mod tests {
 				);
 				assert_eq!(payload.encode(), bhr_indirect_payload.encode());
 				assert_eq!(
-					payload.additional_signed().unwrap().encode(),
-					bhr_indirect_payload.additional_signed().unwrap().encode()
+					payload.implicit().unwrap().encode(),
+					bhr_indirect_payload.implicit().unwrap().encode()
 				)
 			}
 		});
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..99e3d6aeba0
--- /dev/null
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
+// --chain=bridge-hub-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_136_000 picoseconds.
+		Weight::from_parts(5_842_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_771_000 picoseconds.
+		Weight::from_parts(8_857_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 732_000 picoseconds.
+		Weight::from_parts(2_875_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_627_000 picoseconds.
+		Weight::from_parts(6_322_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 471_000 picoseconds.
+		Weight::from_parts(2_455_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 491_000 picoseconds.
+		Weight::from_parts(2_916_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_798_000 picoseconds.
+		Weight::from_parts(6_272_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
index aac39a4564f..d97a30db954 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
@@ -25,6 +25,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_bridge_grandpa;
 pub mod pallet_bridge_messages_rococo_to_rococo_bulletin;
@@ -36,6 +37,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..71d17e7259f
--- /dev/null
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
+// --chain=bridge-hub-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `3`
+		//  Estimated: `3593`
+		// Minimum execution time: 34_956_000 picoseconds.
+		Weight::from_parts(40_788_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs
index 239bd946e75..46c5df18a15 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs
@@ -22,7 +22,7 @@ use bridge_hub_rococo_runtime::{
 	bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages,
 	xcm_config::XcmConfig, AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages,
 	Executive, MessageQueueServiceWeight, Runtime, RuntimeCall, RuntimeEvent, SessionKeys,
-	SignedExtra, UncheckedExtrinsic,
+	TxExtension, UncheckedExtrinsic,
 };
 use codec::{Decode, Encode};
 use cumulus_primitives_core::XcmError::{FailedToTransactAsset, NotHoldingFees};
@@ -171,7 +171,7 @@ fn construct_extrinsic(
 	call: RuntimeCall,
 ) -> UncheckedExtrinsic {
 	let account_id = AccountId32::from(sender.public());
-	let extra: SignedExtra = (
+	let tx_ext: TxExtension = (
 		frame_system::CheckNonZeroSender::<Runtime>::new(),
 		frame_system::CheckSpecVersion::<Runtime>::new(),
 		frame_system::CheckTxVersion::<Runtime>::new(),
@@ -188,13 +188,13 @@ fn construct_extrinsic(
 			OnBridgeHubRococoRefundRococoBulletinMessages::default(),
 		),
 	);
-	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
+	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
 	let signature = payload.using_encoded(|e| sender.sign(e));
 	UncheckedExtrinsic::new_signed(
 		call,
 		account_id.into(),
 		Signature::Sr25519(signature.clone()),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs
index f11954cf165..565343c55a5 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs
@@ -22,7 +22,7 @@ use bridge_hub_rococo_runtime::{
 	xcm_config::{RelayNetwork, TokenLocation, XcmConfig},
 	AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages, EthereumGatewayAddress,
 	Executive, ExistentialDeposit, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall,
-	RuntimeEvent, RuntimeOrigin, SessionKeys, SignedExtra, TransactionPayment, UncheckedExtrinsic,
+	RuntimeEvent, RuntimeOrigin, SessionKeys, TransactionPayment, TxExtension, UncheckedExtrinsic,
 };
 use bridge_hub_test_utils::SlotDurations;
 use codec::{Decode, Encode};
@@ -48,7 +48,7 @@ fn construct_extrinsic(
 	call: RuntimeCall,
 ) -> UncheckedExtrinsic {
 	let account_id = AccountId32::from(sender.public());
-	let extra: SignedExtra = (
+	let tx_ext: TxExtension = (
 		frame_system::CheckNonZeroSender::<Runtime>::new(),
 		frame_system::CheckSpecVersion::<Runtime>::new(),
 		frame_system::CheckTxVersion::<Runtime>::new(),
@@ -64,14 +64,15 @@ fn construct_extrinsic(
 			bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),
 			bridge_to_bulletin_config::OnBridgeHubRococoRefundRococoBulletinMessages::default(),
 		),
-	);
-	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
+	)
+		.into();
+	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
 	let signature = payload.using_encoded(|e| sender.sign(e));
 	UncheckedExtrinsic::new_signed(
 		call,
 		account_id.into(),
 		Signature::Sr25519(signature.clone()),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml
index 8623f7cb366..b5fe093b8be 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml
@@ -204,6 +204,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm-bridge-hub/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs
index bce722aa5f8..934dce5c2c4 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs
@@ -36,7 +36,7 @@ use bridge_runtime_common::{
 		XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge,
 	},
 	refund_relayer_extension::{
-		ActualFeeRefund, RefundBridgedParachainMessages, RefundSignedExtensionAdapter,
+		ActualFeeRefund, RefundBridgedParachainMessages, RefundTransactionExtensionAdapter,
 		RefundableMessagesLane, RefundableParachain,
 	},
 };
@@ -190,7 +190,7 @@ impl ThisChainWithMessages for BridgeHubWestend {
 }
 
 /// Signed extension that refunds relayers that are delivering messages from the Rococo parachain.
-pub type OnBridgeHubWestendRefundBridgeHubRococoMessages = RefundSignedExtensionAdapter<
+pub type OnBridgeHubWestendRefundBridgeHubRococoMessages = RefundTransactionExtensionAdapter<
 	RefundBridgedParachainMessages<
 		Runtime,
 		RefundableParachain<BridgeParachainRococoInstance, bp_bridge_hub_rococo::BridgeHubRococo>,
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs
index e1344fce63d..86ed8b2f488 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs
@@ -97,8 +97,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The TransactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -113,7 +113,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -298,6 +298,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -515,12 +516,14 @@ bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! {
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
 		[pallet_session, SessionBench::<Runtime>]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_collator_selection, CollatorSelection]
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[cumulus_pallet_xcmp_queue, XcmpQueue]
@@ -761,6 +764,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 
@@ -790,6 +794,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
@@ -1135,16 +1140,16 @@ mod tests {
 	use codec::Encode;
 	use sp_runtime::{
 		generic::Era,
-		traits::{SignedExtension, Zero},
+		traits::{TransactionExtensionBase, Zero},
 	};
 
 	#[test]
 	fn ensure_signed_extension_definition_is_compatible_with_relay() {
-		use bp_polkadot_core::SuffixedCommonSignedExtensionExt;
+		use bp_polkadot_core::SuffixedCommonTransactionExtensionExt;
 
 		sp_io::TestExternalities::default().execute_with(|| {
 			frame_system::BlockHash::<Runtime>::insert(BlockNumber::zero(), Hash::default());
-			let payload: SignedExtra = (
+			let payload: TxExtension = (
 				frame_system::CheckNonZeroSender::new(),
 				frame_system::CheckSpecVersion::new(),
 				frame_system::CheckTxVersion::new(),
@@ -1157,10 +1162,10 @@ mod tests {
 				(
 					bridge_to_rococo_config::OnBridgeHubWestendRefundBridgeHubRococoMessages::default(),
 				),
-			);
+			).into();
 
 			{
-				let bh_indirect_payload = bp_bridge_hub_westend::SignedExtension::from_params(
+				let bh_indirect_payload = bp_bridge_hub_westend::TransactionExtension::from_params(
 					VERSION.spec_version,
 					VERSION.transaction_version,
 					bp_runtime::TransactionEra::Immortal,
@@ -1171,8 +1176,8 @@ mod tests {
 				);
 				assert_eq!(payload.encode(), bh_indirect_payload.encode());
 				assert_eq!(
-					payload.additional_signed().unwrap().encode(),
-					bh_indirect_payload.additional_signed().unwrap().encode()
+					payload.implicit().unwrap().encode(),
+					bh_indirect_payload.implicit().unwrap().encode()
 				)
 			}
 		});
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..06f1114b4de
--- /dev/null
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/
+// --chain=bridge-hub-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_166_000 picoseconds.
+		Weight::from_parts(6_021_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_651_000 picoseconds.
+		Weight::from_parts(9_177_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 601_000 picoseconds.
+		Weight::from_parts(2_805_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_727_000 picoseconds.
+		Weight::from_parts(6_051_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 471_000 picoseconds.
+		Weight::from_parts(2_494_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 521_000 picoseconds.
+		Weight::from_parts(2_655_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_808_000 picoseconds.
+		Weight::from_parts(6_402_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs
index a65ee31d3e5..e23033e0dfd 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/mod.rs
@@ -25,6 +25,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_bridge_grandpa;
 pub mod pallet_bridge_messages;
@@ -35,6 +36,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..92c53b91879
--- /dev/null
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/
+// --chain=bridge-hub-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `3`
+		//  Estimated: `3593`
+		// Minimum execution time: 40_286_000 picoseconds.
+		Weight::from_parts(45_816_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs
index 149a3bbeb75..7ea22befe95 100644
--- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs
+++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs
@@ -24,7 +24,7 @@ use bridge_hub_westend_runtime::{
 	xcm_config::{RelayNetwork, WestendLocation, XcmConfig},
 	AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages, Executive, ExistentialDeposit,
 	ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, SessionKeys,
-	SignedExtra, TransactionPayment, UncheckedExtrinsic,
+	TransactionPayment, TxExtension, UncheckedExtrinsic,
 };
 use bridge_to_rococo_config::{
 	BridgeGrandpaRococoInstance, BridgeHubRococoChainId, BridgeHubRococoLocation,
@@ -65,7 +65,7 @@ fn construct_extrinsic(
 	call: RuntimeCall,
 ) -> UncheckedExtrinsic {
 	let account_id = AccountId32::from(sender.public());
-	let extra: SignedExtra = (
+	let tx_ext: TxExtension = (
 		frame_system::CheckNonZeroSender::<Runtime>::new(),
 		frame_system::CheckSpecVersion::<Runtime>::new(),
 		frame_system::CheckTxVersion::<Runtime>::new(),
@@ -78,14 +78,15 @@ fn construct_extrinsic(
 		pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(0),
 		BridgeRejectObsoleteHeadersAndMessages::default(),
 		(bridge_to_rococo_config::OnBridgeHubWestendRefundBridgeHubRococoMessages::default(),),
-	);
-	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
+	)
+		.into();
+	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
 	let signature = payload.using_encoded(|e| sender.sign(e));
 	UncheckedExtrinsic::new_signed(
 		call,
 		account_id.into(),
 		Signature::Sr25519(signature.clone()),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml
index ed264f28c26..32d7e97bc45 100644
--- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml
+++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml
@@ -117,6 +117,7 @@ runtime-benchmarks = [
 	"pallet-salary/runtime-benchmarks",
 	"pallet-scheduler/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs
index 6bcf98c428f..3887a1d74ec 100644
--- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs
@@ -175,6 +175,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = ConstU16<0>;
 	type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
@@ -231,6 +232,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -707,8 +709,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -719,7 +721,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// All migrations executed on runtime upgrade as a nested tuple of types implementing
 /// `OnRuntimeUpgrade`. Included migrations must be idempotent.
 type Migrations = (
@@ -745,6 +747,7 @@ pub type Executive = frame_executive::Executive<
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
@@ -752,6 +755,7 @@ mod benches {
 		[pallet_session, SessionBench::<Runtime>]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_collator_selection, CollatorSelection]
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[cumulus_pallet_xcmp_queue, XcmpQueue]
@@ -955,6 +959,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 
@@ -972,6 +977,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..f3030cc4f6a
--- /dev/null
+++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/
+// --chain=collectives-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_497_000 picoseconds.
+		Weight::from_parts(5_961_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_240_000 picoseconds.
+		Weight::from_parts(8_175_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 671_000 picoseconds.
+		Weight::from_parts(3_005_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_426_000 picoseconds.
+		Weight::from_parts(6_131_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_715_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 491_000 picoseconds.
+		Weight::from_parts(2_635_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_958_000 picoseconds.
+		Weight::from_parts(6_753_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs
index a9a298e547e..00b3bd92d5e 100644
--- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/mod.rs
@@ -18,6 +18,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_alliance;
 pub mod pallet_asset_rate;
 pub mod pallet_balances;
@@ -39,6 +40,7 @@ pub mod pallet_salary_fellowship_salary;
 pub mod pallet_scheduler;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_treasury;
 pub mod pallet_utility;
 pub mod pallet_xcm;
diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..5d077b89d56
--- /dev/null
+++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/
+// --chain=collectives-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 39_815_000 picoseconds.
+		Weight::from_parts(46_067_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml
index dcc6c4e853a..747f75cf2e2 100644
--- a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml
+++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml
@@ -158,6 +158,7 @@ runtime-benchmarks = [
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
index 0668b9a4c7d..8ce46ccd34f 100644
--- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
+++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
@@ -80,8 +80,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -93,7 +93,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -240,6 +240,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight<Runtime>;
 }
 
 parameter_types! {
@@ -423,6 +424,7 @@ construct_runtime!(
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_multisig, Multisig]
@@ -686,6 +688,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 
@@ -703,6 +706,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml
index 0bc3b510ed5..70a6a81bdcf 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml
+++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml
@@ -156,6 +156,7 @@ runtime-benchmarks = [
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs
index cdff371c505..9913e47a93a 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs
+++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs
@@ -89,8 +89,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The TransactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -103,7 +103,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -192,6 +192,8 @@ impl frame_system::Config for Runtime {
 	type DbWeight = RocksDbWeight;
 	/// Weight information for the extrinsics of this pallet.
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	/// Weight information for the extensions of this pallet.
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	/// Block & extrinsics weights: base values and limits.
 	type BlockWeights = RuntimeBlockWeights;
 	/// The maximum length of a block (in bytes).
@@ -251,6 +253,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..aac73680ad1
--- /dev/null
+++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/
+// --chain=coretime-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_637_000 picoseconds.
+		Weight::from_parts(6_382_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_841_000 picoseconds.
+		Weight::from_parts(8_776_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 561_000 picoseconds.
+		Weight::from_parts(2_705_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_316_000 picoseconds.
+		Weight::from_parts(5_771_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 511_000 picoseconds.
+		Weight::from_parts(2_575_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_687_000 picoseconds.
+		Weight::from_parts(6_192_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/mod.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/mod.rs
index f1050b3ae63..7b6ab611e6f 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/mod.rs
@@ -22,6 +22,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_broker;
 pub mod pallet_collator_selection;
@@ -29,6 +30,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..29d48abab89
--- /dev/null
+++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/
+// --chain=coretime-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 33_363_000 picoseconds.
+		Weight::from_parts(38_793_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml
index a7d52dfd784..549ef7ce4d7 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml
+++ b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml
@@ -153,6 +153,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs
index 7fa70647992..1a330821d3f 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs
@@ -89,8 +89,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The TransactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -103,7 +103,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -192,6 +192,8 @@ impl frame_system::Config for Runtime {
 	type DbWeight = RocksDbWeight;
 	/// Weight information for the extrinsics of this pallet.
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	/// Weight information for the extensions of this pallet.
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	/// Block & extrinsics weights: base values and limits.
 	type BlockWeights = RuntimeBlockWeights;
 	/// The maximum length of a block (in bytes).
@@ -251,6 +253,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..0683158a01a
--- /dev/null
+++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/
+// --chain=coretime-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_637_000 picoseconds.
+		Weight::from_parts(6_382_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_841_000 picoseconds.
+		Weight::from_parts(8_776_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 561_000 picoseconds.
+		Weight::from_parts(2_705_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_316_000 picoseconds.
+		Weight::from_parts(5_771_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 511_000 picoseconds.
+		Weight::from_parts(2_575_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_687_000 picoseconds.
+		Weight::from_parts(6_192_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/mod.rs
index f1050b3ae63..7b6ab611e6f 100644
--- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/mod.rs
@@ -22,6 +22,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_broker;
 pub mod pallet_collator_selection;
@@ -29,6 +30,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..f159f877afe
--- /dev/null
+++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/
+// --chain=coretime-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 33_363_000 picoseconds.
+		Weight::from_parts(38_793_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs
index 232a82115a8..199057c3764 100644
--- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs
@@ -289,8 +289,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	pallet_sudo::CheckOnlySudoAccount<Runtime>,
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
@@ -301,7 +301,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
@@ -316,6 +316,7 @@ mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[cumulus_pallet_parachain_system, ParachainSystem]
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_glutton, Glutton]
 		[pallet_message_queue, MessageQueue]
 		[pallet_timestamp, Timestamp]
@@ -439,6 +440,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 
 			let mut list = Vec::<BenchmarkList>::new();
 			list_benchmarks!(list, extra);
@@ -455,6 +457,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {
 				fn setup_set_code_requirements(code: &sp_std::vec::Vec<u8>) -> Result<(), BenchmarkError> {
 					ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32);
diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..e6efa762308
--- /dev/null
+++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,119 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("glutton-westend-dev-1300")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/glutton/glutton-westend/src/weights/
+// --chain=glutton-westend-dev-1300
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_908_000 picoseconds.
+		Weight::from_parts(4_007_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_510_000 picoseconds.
+		Weight::from_parts(6_332_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 651_000 picoseconds.
+		Weight::from_parts(851_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_387_000 picoseconds.
+		Weight::from_parts(3_646_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 491_000 picoseconds.
+		Weight::from_parts(651_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 451_000 picoseconds.
+		Weight::from_parts(662_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1489`
+		// Minimum execution time: 3_537_000 picoseconds.
+		Weight::from_parts(4_208_000, 0)
+			.saturating_add(Weight::from_parts(0, 1489))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml
index c0b8fb7636b..c9781639c3e 100644
--- a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml
+++ b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml
@@ -152,6 +152,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs
index 2b8cc32f67c..c5e420785de 100644
--- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs
+++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs
@@ -83,8 +83,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The TransactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -97,7 +97,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -178,6 +178,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
 	type MaxConsumers = ConstU32<16>;
@@ -232,6 +233,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -453,6 +455,7 @@ mod benches {
 		[pallet_session, SessionBench::<Runtime>]
 		[pallet_utility, Utility]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		// Polkadot
 		[polkadot_runtime_common::identity_migrator, IdentityMigrator]
 		// Cumulus
diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..1ba2010991f
--- /dev/null
+++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/people/people-rococo/src/weights/
+// --chain=people-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_637_000 picoseconds.
+		Weight::from_parts(6_382_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_841_000 picoseconds.
+		Weight::from_parts(8_776_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 561_000 picoseconds.
+		Weight::from_parts(2_705_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_316_000 picoseconds.
+		Weight::from_parts(5_771_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 511_000 picoseconds.
+		Weight::from_parts(2_575_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_687_000 picoseconds.
+		Weight::from_parts(6_192_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/mod.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/mod.rs
index 3396a8caea0..c4cea99ee5a 100644
--- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/mod.rs
@@ -20,6 +20,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_collator_selection;
 pub mod pallet_identity;
@@ -27,6 +28,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..555fd5a32fa
--- /dev/null
+++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/people/people-rococo/src/weights/
+// --chain=people-rococo-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 33_363_000 picoseconds.
+		Weight::from_parts(38_793_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml
index e87e825a34e..8d8421332c1 100644
--- a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml
+++ b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml
@@ -152,6 +152,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-multisig/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-xcm-benchmarks/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs
index 2dc2d06a66b..dea079a4a98 100644
--- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs
+++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs
@@ -83,8 +83,8 @@ pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The transactionExtension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -97,7 +97,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Migrations to apply on runtime upgrade.
 pub type Migrations = (
@@ -178,6 +178,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
 	type MaxConsumers = ConstU32<16>;
@@ -232,6 +233,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/frame_system_extensions.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..7130a62ab6a
--- /dev/null
+++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,121 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/people/people-westend/src/weights/
+// --chain=people-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_637_000 picoseconds.
+		Weight::from_parts(6_382_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_841_000 picoseconds.
+		Weight::from_parts(8_776_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 561_000 picoseconds.
+		Weight::from_parts(2_705_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_316_000 picoseconds.
+		Weight::from_parts(5_771_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 511_000 picoseconds.
+		Weight::from_parts(2_575_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 501_000 picoseconds.
+		Weight::from_parts(2_595_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::BlockWeight` (r:1 w:1)
+	/// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1533`
+		// Minimum execution time: 3_687_000 picoseconds.
+		Weight::from_parts(6_192_000, 0)
+			.saturating_add(Weight::from_parts(0, 1533))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/mod.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/mod.rs
index 3396a8caea0..c4cea99ee5a 100644
--- a/cumulus/parachains/runtimes/people/people-westend/src/weights/mod.rs
+++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/mod.rs
@@ -20,6 +20,7 @@ pub mod cumulus_pallet_parachain_system;
 pub mod cumulus_pallet_xcmp_queue;
 pub mod extrinsic_weights;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_balances;
 pub mod pallet_collator_selection;
 pub mod pallet_identity;
@@ -27,6 +28,7 @@ pub mod pallet_message_queue;
 pub mod pallet_multisig;
 pub mod pallet_session;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_utility;
 pub mod pallet_xcm;
 pub mod paritydb_weights;
diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_transaction_payment.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..30e4524e586
--- /dev/null
+++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,67 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot-parachain
+// benchmark
+// pallet
+// --wasm-execution=compiled
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --steps=2
+// --repeat=2
+// --json
+// --header=./cumulus/file_header.txt
+// --output=./cumulus/parachains/runtimes/people/people-westend/src/weights/
+// --chain=people-westend-dev
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `4`
+		//  Estimated: `3593`
+		// Minimum execution time: 33_363_000 picoseconds.
+		Weight::from_parts(38_793_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs
index 4cc0a81ef49..023c9978302 100644
--- a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs
+++ b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs
@@ -258,8 +258,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
 	frame_system::CheckGenesis<Runtime>,
@@ -269,7 +269,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
diff --git a/cumulus/parachains/runtimes/starters/shell/src/lib.rs b/cumulus/parachains/runtimes/starters/shell/src/lib.rs
index 829754731a4..fedac36e48d 100644
--- a/cumulus/parachains/runtimes/starters/shell/src/lib.rs
+++ b/cumulus/parachains/runtimes/starters/shell/src/lib.rs
@@ -34,15 +34,19 @@ pub mod xcm_config;
 use codec::{Decode, Encode};
 use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases;
 use cumulus_primitives_core::AggregateMessageOrigin;
-use frame_support::unsigned::TransactionValidityError;
 use scale_info::TypeInfo;
 use sp_api::impl_runtime_apis;
 pub use sp_consensus_aura::sr25519::AuthorityId as AuraId;
 use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
 use sp_runtime::{
 	create_runtime_str, generic, impl_opaque_keys,
-	traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, DispatchInfoOf},
-	transaction_validity::{TransactionSource, TransactionValidity},
+	traits::{
+		AccountIdLookup, BlakeTwo256, Block as BlockT, DispatchInfoOf, OriginOf,
+		TransactionExtension, TransactionExtensionBase, ValidateResult,
+	},
+	transaction_validity::{
+		InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError,
+	},
 	ApplyExtrinsicResult,
 };
 use sp_std::prelude::*;
@@ -275,35 +279,37 @@ construct_runtime! {
 /// Simple implementation which fails any transaction which is signed.
 #[derive(Eq, PartialEq, Clone, Default, sp_core::RuntimeDebug, Encode, Decode, TypeInfo)]
 pub struct DisallowSigned;
-impl sp_runtime::traits::SignedExtension for DisallowSigned {
+
+impl TransactionExtensionBase for DisallowSigned {
 	const IDENTIFIER: &'static str = "DisallowSigned";
-	type AccountId = AccountId;
-	type Call = RuntimeCall;
-	type AdditionalSigned = ();
+	type Implicit = ();
+}
+
+impl<C> TransactionExtension<RuntimeCall, C> for DisallowSigned {
+	type Val = ();
 	type Pre = ();
-	fn additional_signed(
+	fn validate(
 		&self,
-	) -> sp_std::result::Result<(), sp_runtime::transaction_validity::TransactionValidityError> {
-		Ok(())
+		_origin: OriginOf<RuntimeCall>,
+		_call: &RuntimeCall,
+		_info: &DispatchInfoOf<RuntimeCall>,
+		_len: usize,
+		_context: &mut C,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, RuntimeCall> {
+		Err(InvalidTransaction::BadProof.into())
 	}
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
-	fn validate(
-		&self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
+		_val: Self::Val,
+		_origin: &OriginOf<RuntimeCall>,
+		_call: &RuntimeCall,
+		_info: &DispatchInfoOf<RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
-		let i = sp_runtime::transaction_validity::InvalidTransaction::BadProof;
-		Err(sp_runtime::transaction_validity::TransactionValidityError::Invalid(i))
+		_context: &C,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		Err(InvalidTransaction::BadProof.into())
 	}
 }
 
@@ -323,11 +329,11 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = DisallowSigned;
+/// The extension to the basic transaction logic.
+pub type TxExtension = DisallowSigned;
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
diff --git a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml
index 08e5987d43a..bca6aca051f 100644
--- a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml
+++ b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml
@@ -158,6 +158,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs
index 0030287edb3..62065619e42 100644
--- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs
+++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs
@@ -114,8 +114,8 @@ pub type BlockId = generic::BlockId<Block>;
 // Id used for identifying assets.
 pub type AssetId = u32;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -128,7 +128,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 pub type Migrations = (
 	pallet_balances::migration::MigrateToTrackInactive<Runtime, xcm_config::CheckingAccount>,
@@ -419,6 +419,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = ();
 }
 
 parameter_types! {
@@ -608,6 +609,19 @@ impl pallet_collator_selection::Config for Runtime {
 	type WeightInfo = ();
 }
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct AssetTxHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl pallet_asset_tx_payment::BenchmarkHelperTrait<AccountId, u32, u32> for AssetTxHelper {
+	fn create_asset_id_parameter(_id: u32) -> (u32, u32) {
+		unimplemented!("Penpal uses default weights");
+	}
+	fn setup_balances_and_pool(_asset_id: u32, _account: AccountId) {
+		unimplemented!("Penpal uses default weights");
+	}
+}
+
 impl pallet_asset_tx_payment::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type Fungibles = Assets;
@@ -620,6 +634,9 @@ impl pallet_asset_tx_payment::Config for Runtime {
 		>,
 		AssetsToBlockAuthor<Runtime>,
 	>;
+	type WeightInfo = ();
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = AssetTxHelper;
 }
 
 impl pallet_sudo::Config for Runtime {
@@ -668,6 +685,7 @@ construct_runtime!(
 mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_message_queue, MessageQueue]
 		[pallet_session, SessionBench::<Runtime>]
@@ -851,6 +869,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
 
 			let mut list = Vec::<BenchmarkList>::new();
@@ -867,6 +886,7 @@ impl_runtime_apis! {
 			use sp_storage::TrackedStorageKey;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			impl frame_system_benchmarking::Config for Runtime {}
 
 			use cumulus_pallet_session_benchmarking::Pallet as SessionBench;
diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml
index 42169e8949f..2023d9abf5d 100644
--- a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml
+++ b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml
@@ -126,6 +126,7 @@ runtime-benchmarks = [
 	"pallet-message-queue/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs
index 2b21a12c3ca..469f06a1aa6 100644
--- a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs
+++ b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs
@@ -267,6 +267,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = ();
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = ();
 }
 
 impl pallet_sudo::Config for Runtime {
@@ -644,8 +645,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -657,7 +658,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml
index 84a232e954f..a92e8a4c12a 100644
--- a/cumulus/polkadot-parachain/Cargo.toml
+++ b/cumulus/polkadot-parachain/Cargo.toml
@@ -136,6 +136,7 @@ runtime-benchmarks = [
 	"frame-benchmarking/runtime-benchmarks",
 	"frame-support/runtime-benchmarks",
 	"glutton-westend-runtime/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
 	"penpal-runtime/runtime-benchmarks",
 	"people-rococo-runtime/runtime-benchmarks",
diff --git a/cumulus/primitives/storage-weight-reclaim/Cargo.toml b/cumulus/primitives/storage-weight-reclaim/Cargo.toml
index 4835fb5192b..9e8f60783d4 100644
--- a/cumulus/primitives/storage-weight-reclaim/Cargo.toml
+++ b/cumulus/primitives/storage-weight-reclaim/Cargo.toml
@@ -14,9 +14,12 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features =
 log = { workspace = true }
 scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
 
+frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
 frame-support = { path = "../../../substrate/frame/support", default-features = false }
 frame-system = { path = "../../../substrate/frame/system", default-features = false }
 
+sp-core = { path = "../../../substrate/primitives/core", default-features = false }
+sp-io = { path = "../../../substrate/primitives/io", default-features = false }
 sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
 sp-std = { path = "../../../substrate/primitives/std", default-features = false }
 
@@ -26,19 +29,27 @@ docify = "0.2.7"
 
 [dev-dependencies]
 sp-trie = { path = "../../../substrate/primitives/trie", default-features = false }
-sp-io = { path = "../../../substrate/primitives/io", default-features = false }
 cumulus-test-runtime = { path = "../../test/runtime" }
 
 [features]
 default = ["std"]
+runtime-benchmarks = [
+	"cumulus-primitives-core/runtime-benchmarks",
+	"frame-benchmarking/runtime-benchmarks",
+	"frame-support/runtime-benchmarks",
+	"frame-system/runtime-benchmarks",
+	"sp-runtime/runtime-benchmarks",
+]
 std = [
 	"codec/std",
 	"cumulus-primitives-core/std",
 	"cumulus-primitives-proof-size-hostfunction/std",
+	"frame-benchmarking/std",
 	"frame-support/std",
 	"frame-system/std",
 	"log/std",
 	"scale-info/std",
+	"sp-core/std",
 	"sp-io/std",
 	"sp-runtime/std",
 	"sp-std/std",
diff --git a/cumulus/primitives/storage-weight-reclaim/src/benchmarking.rs b/cumulus/primitives/storage-weight-reclaim/src/benchmarking.rs
new file mode 100644
index 00000000000..2980d08271a
--- /dev/null
+++ b/cumulus/primitives/storage-weight-reclaim/src/benchmarking.rs
@@ -0,0 +1,70 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Benchmarking setup for cumulus-primitives-storage-weight-reclaim
+
+#![cfg(feature = "runtime-benchmarks")]
+
+use super::*;
+
+use frame_benchmarking::{account, v2::*, BenchmarkError};
+use frame_support::pallet_prelude::DispatchClass;
+use frame_system::{BlockWeight, RawOrigin};
+use sp_runtime::traits::{DispatchTransaction, Get};
+use sp_std::{
+	marker::{Send, Sync},
+	prelude::*,
+};
+
+/// Pallet we're benchmarking here.
+pub struct Pallet<T: frame_system::Config>(frame_system::Pallet<T>);
+
+#[benchmarks(where
+    T: Send + Sync,
+    T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>
+)]
+mod benchmarks {
+	use super::*;
+
+	#[benchmark]
+	fn storage_weight_reclaim() -> Result<(), BenchmarkError> {
+		let caller = account("caller", 0, 0);
+		BlockWeight::<T>::mutate(|current_weight| {
+			current_weight.set(Weight::from_parts(0, 1000), DispatchClass::Normal);
+		});
+		let base_extrinsic = <T as frame_system::Config>::BlockWeights::get()
+			.get(DispatchClass::Normal)
+			.base_extrinsic;
+		let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(0, 200)),
+			pays_fee: Default::default(),
+		};
+		let len = 0_usize;
+		let ext = StorageWeightReclaim::<T>::new();
+
+		#[block]
+		{
+			ext.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(post_info))
+				.unwrap()
+				.unwrap();
+		}
+
+		assert_eq!(BlockWeight::<T>::get().total().proof_size(), 700 + base_extrinsic.proof_size());
+
+		Ok(())
+	}
+}
diff --git a/cumulus/primitives/storage-weight-reclaim/src/lib.rs b/cumulus/primitives/storage-weight-reclaim/src/lib.rs
index 5dddc92e395..4bb40176b78 100644
--- a/cumulus/primitives/storage-weight-reclaim/src/lib.rs
+++ b/cumulus/primitives/storage-weight-reclaim/src/lib.rs
@@ -29,12 +29,22 @@ use frame_support::{
 use frame_system::Config;
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension},
+	impl_tx_ext_default,
+	traits::{
+		DispatchInfoOf, Dispatchable, PostDispatchInfoOf, TransactionExtension,
+		TransactionExtensionBase,
+	},
 	transaction_validity::TransactionValidityError,
 	DispatchResult,
 };
 use sp_std::marker::PhantomData;
 
+#[cfg(test)]
+mod tests;
+
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
+
 const LOG_TARGET: &'static str = "runtime::storage_reclaim";
 
 /// `StorageWeightReclaimer` is a mechanism for manually reclaiming storage weight.
@@ -43,7 +53,7 @@ const LOG_TARGET: &'static str = "runtime::storage_reclaim";
 /// reclaim  it computes the real consumed storage weight and refunds excess weight.
 ///
 /// # Example
-#[doc = docify::embed!("src/lib.rs", simple_reclaimer_example)]
+#[doc = docify::embed!("src/tests.rs", simple_reclaimer_example)]
 pub struct StorageWeightReclaimer {
 	previous_remaining_proof_size: u64,
 	previous_reported_proof_size: Option<u64>,
@@ -119,42 +129,40 @@ impl<T: Config + Send + Sync> core::fmt::Debug for StorageWeightReclaim<T> {
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for StorageWeightReclaim<T>
+impl<T: Config + Send + Sync> TransactionExtensionBase for StorageWeightReclaim<T> {
+	const IDENTIFIER: &'static str = "StorageWeightReclaim";
+	type Implicit = ();
+}
+
+impl<T: Config + Send + Sync, Context> TransactionExtension<T::RuntimeCall, Context>
+	for StorageWeightReclaim<T>
 where
 	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
 {
-	const IDENTIFIER: &'static str = "StorageWeightReclaim";
-
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
+	type Val = ();
 	type Pre = Option<u64>;
 
-	fn additional_signed(
-		&self,
-	) -> Result<Self::AdditionalSigned, sp_runtime::transaction_validity::TransactionValidityError>
-	{
-		Ok(())
-	}
-
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
+		_val: Self::Val,
+		_origin: &T::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
-	) -> Result<Self::Pre, sp_runtime::transaction_validity::TransactionValidityError> {
+		_context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError> {
 		Ok(get_proof_size())
 	}
 
 	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		pre: Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
 		_result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		let Some(Some(pre_dispatch_proof_size)) = pre else {
+		let Some(pre_dispatch_proof_size) = pre else {
 			return Ok(());
 		};
 
@@ -194,470 +202,6 @@ where
 		});
 		Ok(())
 	}
-}
-
-#[cfg(test)]
-mod tests {
-	use super::*;
-	use frame_support::{
-		assert_ok,
-		dispatch::DispatchClass,
-		weights::{Weight, WeightMeter},
-	};
-	use frame_system::{BlockWeight, CheckWeight};
-	use sp_runtime::{AccountId32, BuildStorage};
-	use sp_std::marker::PhantomData;
-	use sp_trie::proof_size_extension::ProofSizeExt;
-
-	type Test = cumulus_test_runtime::Runtime;
-	const CALL: &<Test as Config>::RuntimeCall =
-		&cumulus_test_runtime::RuntimeCall::System(frame_system::Call::set_heap_pages {
-			pages: 0u64,
-		});
-	const ALICE: AccountId32 = AccountId32::new([1u8; 32]);
-	const LEN: usize = 0;
-
-	pub fn new_test_ext() -> sp_io::TestExternalities {
-		let ext: sp_io::TestExternalities = cumulus_test_runtime::RuntimeGenesisConfig::default()
-			.build_storage()
-			.unwrap()
-			.into();
-		ext
-	}
-
-	struct TestRecorder {
-		return_values: Box<[usize]>,
-		counter: std::sync::atomic::AtomicUsize,
-	}
-
-	impl TestRecorder {
-		fn new(values: &[usize]) -> Self {
-			TestRecorder { return_values: values.into(), counter: Default::default() }
-		}
-	}
-
-	impl sp_trie::ProofSizeProvider for TestRecorder {
-		fn estimate_encoded_size(&self) -> usize {
-			let counter = self.counter.fetch_add(1, core::sync::atomic::Ordering::Relaxed);
-			self.return_values[counter]
-		}
-	}
-
-	fn setup_test_externalities(proof_values: &[usize]) -> sp_io::TestExternalities {
-		let mut test_ext = new_test_ext();
-		let test_recorder = TestRecorder::new(proof_values);
-		test_ext.register_extension(ProofSizeExt::new(test_recorder));
-		test_ext
-	}
-
-	fn set_current_storage_weight(new_weight: u64) {
-		BlockWeight::<Test>::mutate(|current_weight| {
-			current_weight.set(Weight::from_parts(0, new_weight), DispatchClass::Normal);
-		});
-	}
-
-	#[test]
-	fn basic_refund() {
-		// The real cost will be 100 bytes of storage size
-		let mut test_ext = setup_test_externalities(&[0, 100]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-
-			// Benchmarked storage weight: 500
-			let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
-			let post_info = PostDispatchInfo::default();
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(0));
-
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			// We expect a refund of 400
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 600);
-		})
-	}
-
-	#[test]
-	fn does_nothing_without_extension() {
-		let mut test_ext = new_test_ext();
-
-		// Proof size extension not registered
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-
-			// Benchmarked storage weight: 500
-			let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
-			let post_info = PostDispatchInfo::default();
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, None);
-
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1000);
-		})
-	}
-
-	#[test]
-	fn negative_refund_is_added_to_weight() {
-		let mut test_ext = setup_test_externalities(&[100, 300]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-			// Benchmarked storage weight: 100
-			let info = DispatchInfo { weight: Weight::from_parts(0, 100), ..Default::default() };
-			let post_info = PostDispatchInfo::default();
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(100));
-
-			// We expect no refund
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1100);
-		})
-	}
-
-	#[test]
-	fn test_zero_proof_size() {
-		let mut test_ext = setup_test_externalities(&[0, 0]);
-
-		test_ext.execute_with(|| {
-			let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
-			let post_info = PostDispatchInfo::default();
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(0));
-
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 0);
-		});
-	}
-
-	#[test]
-	fn test_larger_pre_dispatch_proof_size() {
-		let mut test_ext = setup_test_externalities(&[300, 100]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1300);
-
-			let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
-			let post_info = PostDispatchInfo::default();
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(300));
-
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 800);
-		});
-	}
-
-	#[test]
-	fn test_incorporates_check_weight_unspent_weight() {
-		let mut test_ext = setup_test_externalities(&[100, 300]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-
-			// Benchmarked storage weight: 300
-			let info = DispatchInfo { weight: Weight::from_parts(100, 300), ..Default::default() };
-
-			// Actual weight is 50
-			let post_info = PostDispatchInfo {
-				actual_weight: Some(Weight::from_parts(50, 250)),
-				pays_fee: Default::default(),
-			};
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(100));
-
-			// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
-			// we always need to call `post_dispatch` to verify that they interoperate correctly.
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 900);
-		})
-	}
-
-	#[test]
-	fn test_incorporates_check_weight_unspent_weight_on_negative() {
-		let mut test_ext = setup_test_externalities(&[100, 300]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-			// Benchmarked storage weight: 50
-			let info = DispatchInfo { weight: Weight::from_parts(100, 50), ..Default::default() };
-
-			// Actual weight is 25
-			let post_info = PostDispatchInfo {
-				actual_weight: Some(Weight::from_parts(50, 25)),
-				pays_fee: Default::default(),
-			};
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(100));
-
-			// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
-			// we always need to call `post_dispatch` to verify that they interoperate correctly.
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1150);
-		})
-	}
-
-	#[test]
-	fn test_incorporates_check_weight_unspent_weight_reverse_order() {
-		let mut test_ext = setup_test_externalities(&[100, 300]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-
-			// Benchmarked storage weight: 300
-			let info = DispatchInfo { weight: Weight::from_parts(100, 300), ..Default::default() };
-
-			// Actual weight is 50
-			let post_info = PostDispatchInfo {
-				actual_weight: Some(Weight::from_parts(50, 250)),
-				pays_fee: Default::default(),
-			};
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(100));
-
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-			// `CheckWeight` gets called after `StorageWeightReclaim` this time.
-			// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
-			// we always need to call `post_dispatch` to verify that they interoperate correctly.
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 900);
-		})
-	}
-
-	#[test]
-	fn test_incorporates_check_weight_unspent_weight_on_negative_reverse_order() {
-		let mut test_ext = setup_test_externalities(&[100, 300]);
-
-		test_ext.execute_with(|| {
-			set_current_storage_weight(1000);
-			// Benchmarked storage weight: 50
-			let info = DispatchInfo { weight: Weight::from_parts(100, 50), ..Default::default() };
 
-			// Actual weight is 25
-			let post_info = PostDispatchInfo {
-				actual_weight: Some(Weight::from_parts(50, 25)),
-				pays_fee: Default::default(),
-			};
-
-			let pre = StorageWeightReclaim::<Test>(PhantomData)
-				.pre_dispatch(&ALICE, CALL, &info, LEN)
-				.unwrap();
-			assert_eq!(pre, Some(100));
-
-			assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				LEN,
-				&Ok(())
-			));
-			// `CheckWeight` gets called after `StorageWeightReclaim` this time.
-			// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
-			// we always need to call `post_dispatch` to verify that they interoperate correctly.
-			assert_ok!(CheckWeight::<Test>::post_dispatch(None, &info, &post_info, 0, &Ok(())));
-
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1150);
-		})
-	}
-
-	#[test]
-	fn storage_size_reported_correctly() {
-		let mut test_ext = setup_test_externalities(&[1000]);
-		test_ext.execute_with(|| {
-			assert_eq!(get_proof_size(), Some(1000));
-		});
-
-		let mut test_ext = new_test_ext();
-
-		let test_recorder = TestRecorder::new(&[0]);
-
-		test_ext.register_extension(ProofSizeExt::new(test_recorder));
-
-		test_ext.execute_with(|| {
-			assert_eq!(get_proof_size(), Some(0));
-		});
-	}
-
-	#[test]
-	fn storage_size_disabled_reported_correctly() {
-		let mut test_ext = setup_test_externalities(&[PROOF_RECORDING_DISABLED as usize]);
-
-		test_ext.execute_with(|| {
-			assert_eq!(get_proof_size(), None);
-		});
-	}
-
-	#[test]
-	fn test_reclaim_helper() {
-		let mut test_ext = setup_test_externalities(&[1000, 1300, 1800]);
-
-		test_ext.execute_with(|| {
-			let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 2000));
-			let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
-			remaining_weight_meter.consume(Weight::from_parts(0, 500));
-			let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
-
-			assert_eq!(reclaimed, Some(Weight::from_parts(0, 200)));
-
-			remaining_weight_meter.consume(Weight::from_parts(0, 800));
-			let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
-			assert_eq!(reclaimed, Some(Weight::from_parts(0, 300)));
-			assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(0, 1200));
-		});
-	}
-
-	#[test]
-	fn test_reclaim_helper_does_not_reclaim_negative() {
-		// Benchmarked weight does not change at all
-		let mut test_ext = setup_test_externalities(&[1000, 1300]);
-
-		test_ext.execute_with(|| {
-			let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 1000));
-			let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
-			let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
-
-			assert_eq!(reclaimed, Some(Weight::from_parts(0, 0)));
-			assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(0, 1000));
-		});
-
-		// Benchmarked weight increases less than storage proof consumes
-		let mut test_ext = setup_test_externalities(&[1000, 1300]);
-
-		test_ext.execute_with(|| {
-			let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 1000));
-			let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
-			remaining_weight_meter.consume(Weight::from_parts(0, 0));
-			let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
-
-			assert_eq!(reclaimed, Some(Weight::from_parts(0, 0)));
-		});
-	}
-
-	/// Just here for doc purposes
-	fn get_benched_weight() -> Weight {
-		Weight::from_parts(0, 5)
-	}
-
-	/// Just here for doc purposes
-	fn do_work() {}
-
-	#[docify::export_content(simple_reclaimer_example)]
-	fn reclaim_with_weight_meter() {
-		let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(10, 10));
-
-		let benched_weight = get_benched_weight();
-
-		// It is important to instantiate the `StorageWeightReclaimer` before we consume the weight
-		// for a piece of work from the weight meter.
-		let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
-
-		if remaining_weight_meter.try_consume(benched_weight).is_ok() {
-			// Perform some work that takes has `benched_weight` storage weight.
-			do_work();
-
-			// Reclaimer will detect that we only consumed 2 bytes, so 3 bytes are reclaimed.
-			let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
-
-			// We reclaimed 3 bytes of storage size!
-			assert_eq!(reclaimed, Some(Weight::from_parts(0, 3)));
-			assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 10);
-			assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(10, 8));
-		}
-	}
-
-	#[test]
-	fn test_reclaim_helper_works_with_meter() {
-		// The node will report 12 - 10 = 2 consumed storage size between the calls.
-		let mut test_ext = setup_test_externalities(&[10, 12]);
-
-		test_ext.execute_with(|| {
-			// Initial storage size is 10.
-			set_current_storage_weight(10);
-			reclaim_with_weight_meter();
-		});
-	}
+	impl_tx_ext_default!(T::RuntimeCall; Context; validate);
 }
diff --git a/cumulus/primitives/storage-weight-reclaim/src/tests.rs b/cumulus/primitives/storage-weight-reclaim/src/tests.rs
new file mode 100644
index 00000000000..631827cf442
--- /dev/null
+++ b/cumulus/primitives/storage-weight-reclaim/src/tests.rs
@@ -0,0 +1,484 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use super::*;
+use frame_support::{
+	assert_ok,
+	dispatch::DispatchClass,
+	weights::{Weight, WeightMeter},
+};
+use frame_system::{BlockWeight, CheckWeight};
+use sp_runtime::{traits::DispatchTransaction, AccountId32, BuildStorage};
+use sp_std::marker::PhantomData;
+use sp_trie::proof_size_extension::ProofSizeExt;
+
+type Test = cumulus_test_runtime::Runtime;
+const CALL: &<Test as Config>::RuntimeCall =
+	&cumulus_test_runtime::RuntimeCall::System(frame_system::Call::set_heap_pages { pages: 0u64 });
+const ALICE: AccountId32 = AccountId32::new([1u8; 32]);
+const LEN: usize = 0;
+
+fn new_test_ext() -> sp_io::TestExternalities {
+	let ext: sp_io::TestExternalities = cumulus_test_runtime::RuntimeGenesisConfig::default()
+		.build_storage()
+		.unwrap()
+		.into();
+	ext
+}
+
+struct TestRecorder {
+	return_values: Box<[usize]>,
+	counter: std::sync::atomic::AtomicUsize,
+}
+
+impl TestRecorder {
+	fn new(values: &[usize]) -> Self {
+		TestRecorder { return_values: values.into(), counter: Default::default() }
+	}
+}
+
+impl sp_trie::ProofSizeProvider for TestRecorder {
+	fn estimate_encoded_size(&self) -> usize {
+		let counter = self.counter.fetch_add(1, core::sync::atomic::Ordering::Relaxed);
+		self.return_values[counter]
+	}
+}
+
+fn setup_test_externalities(proof_values: &[usize]) -> sp_io::TestExternalities {
+	let mut test_ext = new_test_ext();
+	let test_recorder = TestRecorder::new(proof_values);
+	test_ext.register_extension(ProofSizeExt::new(test_recorder));
+	test_ext
+}
+
+fn set_current_storage_weight(new_weight: u64) {
+	BlockWeight::<Test>::mutate(|current_weight| {
+		current_weight.set(Weight::from_parts(0, new_weight), DispatchClass::Normal);
+	});
+}
+
+#[test]
+fn basic_refund() {
+	// The real cost will be 100 bytes of storage size
+	let mut test_ext = setup_test_externalities(&[0, 100]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+
+		// Benchmarked storage weight: 500
+		let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
+		let post_info = PostDispatchInfo::default();
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(0));
+
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		// We expect a refund of 400
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 600);
+	})
+}
+
+#[test]
+fn does_nothing_without_extension() {
+	let mut test_ext = new_test_ext();
+
+	// Proof size extension not registered
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+
+		// Benchmarked storage weight: 500
+		let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
+		let post_info = PostDispatchInfo::default();
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, None);
+
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1000);
+	})
+}
+
+#[test]
+fn negative_refund_is_added_to_weight() {
+	let mut test_ext = setup_test_externalities(&[100, 300]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+		// Benchmarked storage weight: 100
+		let info = DispatchInfo { weight: Weight::from_parts(0, 100), ..Default::default() };
+		let post_info = PostDispatchInfo::default();
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(100));
+
+		// We expect no refund
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1100);
+	})
+}
+
+#[test]
+fn test_zero_proof_size() {
+	let mut test_ext = setup_test_externalities(&[0, 0]);
+
+	test_ext.execute_with(|| {
+		let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
+		let post_info = PostDispatchInfo::default();
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(0));
+
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 0);
+	});
+}
+
+#[test]
+fn test_larger_pre_dispatch_proof_size() {
+	let mut test_ext = setup_test_externalities(&[300, 100]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1300);
+
+		let info = DispatchInfo { weight: Weight::from_parts(0, 500), ..Default::default() };
+		let post_info = PostDispatchInfo::default();
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(300));
+
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 800);
+	});
+}
+
+#[test]
+fn test_incorporates_check_weight_unspent_weight() {
+	let mut test_ext = setup_test_externalities(&[100, 300]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+
+		// Benchmarked storage weight: 300
+		let info = DispatchInfo { weight: Weight::from_parts(100, 300), ..Default::default() };
+
+		// Actual weight is 50
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(50, 250)),
+			pays_fee: Default::default(),
+		};
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(100));
+
+		// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
+		// we always need to call `post_dispatch` to verify that they interoperate correctly.
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 900);
+	})
+}
+
+#[test]
+fn test_incorporates_check_weight_unspent_weight_on_negative() {
+	let mut test_ext = setup_test_externalities(&[100, 300]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+		// Benchmarked storage weight: 50
+		let info = DispatchInfo { weight: Weight::from_parts(100, 50), ..Default::default() };
+
+		// Actual weight is 25
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(50, 25)),
+			pays_fee: Default::default(),
+		};
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(100));
+
+		// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
+		// we always need to call `post_dispatch` to verify that they interoperate correctly.
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1150);
+	})
+}
+
+#[test]
+fn test_incorporates_check_weight_unspent_weight_reverse_order() {
+	let mut test_ext = setup_test_externalities(&[100, 300]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+
+		// Benchmarked storage weight: 300
+		let info = DispatchInfo { weight: Weight::from_parts(100, 300), ..Default::default() };
+
+		// Actual weight is 50
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(50, 250)),
+			pays_fee: Default::default(),
+		};
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(100));
+
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+		// `CheckWeight` gets called after `StorageWeightReclaim` this time.
+		// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
+		// we always need to call `post_dispatch` to verify that they interoperate correctly.
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 900);
+	})
+}
+
+#[test]
+fn test_incorporates_check_weight_unspent_weight_on_negative_reverse_order() {
+	let mut test_ext = setup_test_externalities(&[100, 300]);
+
+	test_ext.execute_with(|| {
+		set_current_storage_weight(1000);
+		// Benchmarked storage weight: 50
+		let info = DispatchInfo { weight: Weight::from_parts(100, 50), ..Default::default() };
+
+		// Actual weight is 25
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(50, 25)),
+			pays_fee: Default::default(),
+		};
+
+		let (pre, _) = StorageWeightReclaim::<Test>(PhantomData)
+			.validate_and_prepare(Some(ALICE.clone()).into(), CALL, &info, LEN)
+			.unwrap();
+		assert_eq!(pre, Some(100));
+
+		assert_ok!(StorageWeightReclaim::<Test>::post_dispatch(
+			pre,
+			&info,
+			&post_info,
+			LEN,
+			&Ok(()),
+			&()
+		));
+		// `CheckWeight` gets called after `StorageWeightReclaim` this time.
+		// The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo`
+		// we always need to call `post_dispatch` to verify that they interoperate correctly.
+		assert_ok!(CheckWeight::<Test>::post_dispatch((), &info, &post_info, 0, &Ok(()), &()));
+
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 1150);
+	})
+}
+
+#[test]
+fn storage_size_reported_correctly() {
+	let mut test_ext = setup_test_externalities(&[1000]);
+	test_ext.execute_with(|| {
+		assert_eq!(get_proof_size(), Some(1000));
+	});
+
+	let mut test_ext = new_test_ext();
+
+	let test_recorder = TestRecorder::new(&[0]);
+
+	test_ext.register_extension(ProofSizeExt::new(test_recorder));
+
+	test_ext.execute_with(|| {
+		assert_eq!(get_proof_size(), Some(0));
+	});
+}
+
+#[test]
+fn storage_size_disabled_reported_correctly() {
+	let mut test_ext = setup_test_externalities(&[PROOF_RECORDING_DISABLED as usize]);
+
+	test_ext.execute_with(|| {
+		assert_eq!(get_proof_size(), None);
+	});
+}
+
+#[test]
+fn test_reclaim_helper() {
+	let mut test_ext = setup_test_externalities(&[1000, 1300, 1800]);
+
+	test_ext.execute_with(|| {
+		let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 2000));
+		let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
+		remaining_weight_meter.consume(Weight::from_parts(0, 500));
+		let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
+
+		assert_eq!(reclaimed, Some(Weight::from_parts(0, 200)));
+
+		remaining_weight_meter.consume(Weight::from_parts(0, 800));
+		let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
+		assert_eq!(reclaimed, Some(Weight::from_parts(0, 300)));
+		assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(0, 1200));
+	});
+}
+
+#[test]
+fn test_reclaim_helper_does_not_reclaim_negative() {
+	// Benchmarked weight does not change at all
+	let mut test_ext = setup_test_externalities(&[1000, 1300]);
+
+	test_ext.execute_with(|| {
+		let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 1000));
+		let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
+		let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
+
+		assert_eq!(reclaimed, Some(Weight::from_parts(0, 0)));
+		assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(0, 1000));
+	});
+
+	// Benchmarked weight increases less than storage proof consumes
+	let mut test_ext = setup_test_externalities(&[1000, 1300]);
+
+	test_ext.execute_with(|| {
+		let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(0, 1000));
+		let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
+		remaining_weight_meter.consume(Weight::from_parts(0, 0));
+		let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
+
+		assert_eq!(reclaimed, Some(Weight::from_parts(0, 0)));
+	});
+}
+
+/// Just here for doc purposes
+fn get_benched_weight() -> Weight {
+	Weight::from_parts(0, 5)
+}
+
+/// Just here for doc purposes
+fn do_work() {}
+
+#[docify::export_content(simple_reclaimer_example)]
+fn reclaim_with_weight_meter() {
+	let mut remaining_weight_meter = WeightMeter::with_limit(Weight::from_parts(10, 10));
+
+	let benched_weight = get_benched_weight();
+
+	// It is important to instantiate the `StorageWeightReclaimer` before we consume the weight
+	// for a piece of work from the weight meter.
+	let mut reclaim_helper = StorageWeightReclaimer::new(&remaining_weight_meter);
+
+	if remaining_weight_meter.try_consume(benched_weight).is_ok() {
+		// Perform some work that takes has `benched_weight` storage weight.
+		do_work();
+
+		// Reclaimer will detect that we only consumed 2 bytes, so 3 bytes are reclaimed.
+		let reclaimed = reclaim_helper.reclaim_with_meter(&mut remaining_weight_meter);
+
+		// We reclaimed 3 bytes of storage size!
+		assert_eq!(reclaimed, Some(Weight::from_parts(0, 3)));
+		assert_eq!(BlockWeight::<Test>::get().total().proof_size(), 10);
+		assert_eq!(remaining_weight_meter.remaining(), Weight::from_parts(10, 8));
+	}
+}
+
+#[test]
+fn test_reclaim_helper_works_with_meter() {
+	// The node will report 12 - 10 = 2 consumed storage size between the calls.
+	let mut test_ext = setup_test_externalities(&[10, 12]);
+
+	test_ext.execute_with(|| {
+		// Initial storage size is 10.
+		set_current_storage_weight(10);
+		reclaim_with_weight_meter();
+	});
+}
diff --git a/cumulus/test/client/Cargo.toml b/cumulus/test/client/Cargo.toml
index 028733ce235..9dfa6ecb351 100644
--- a/cumulus/test/client/Cargo.toml
+++ b/cumulus/test/client/Cargo.toml
@@ -46,9 +46,11 @@ cumulus-primitives-storage-weight-reclaim = { path = "../../primitives/storage-w
 [features]
 runtime-benchmarks = [
 	"cumulus-primitives-core/runtime-benchmarks",
+	"cumulus-primitives-storage-weight-reclaim/runtime-benchmarks",
 	"cumulus-test-service/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
 	"polkadot-primitives/runtime-benchmarks",
 	"sc-service/runtime-benchmarks",
diff --git a/cumulus/test/client/src/lib.rs b/cumulus/test/client/src/lib.rs
index c46f4da7f67..9239ff0f23e 100644
--- a/cumulus/test/client/src/lib.rs
+++ b/cumulus/test/client/src/lib.rs
@@ -19,7 +19,7 @@
 mod block_builder;
 use codec::{Decode, Encode};
 use runtime::{
-	Balance, Block, BlockHashCount, Runtime, RuntimeCall, Signature, SignedExtra, SignedPayload,
+	Balance, Block, BlockHashCount, Runtime, RuntimeCall, Signature, SignedPayload, TxExtension,
 	UncheckedExtrinsic, VERSION,
 };
 use sc_executor::HeapAllocStrategy;
@@ -125,7 +125,7 @@ impl DefaultTestClientBuilderExt for TestClientBuilder {
 
 /// Create an unsigned extrinsic from a runtime call.
 pub fn generate_unsigned(function: impl Into<RuntimeCall>) -> UncheckedExtrinsic {
-	UncheckedExtrinsic::new_unsigned(function.into())
+	UncheckedExtrinsic::new_bare(function.into())
 }
 
 /// Create a signed extrinsic from a runtime call and sign
@@ -143,7 +143,7 @@ pub fn generate_extrinsic_with_pair(
 	let period =
 		BlockHashCount::get().checked_next_power_of_two().map(|c| c / 2).unwrap_or(2) as u64;
 	let tip = 0;
-	let extra: SignedExtra = (
+	let tx_ext: TxExtension = (
 		frame_system::CheckNonZeroSender::<Runtime>::new(),
 		frame_system::CheckSpecVersion::<Runtime>::new(),
 		frame_system::CheckGenesis::<Runtime>::new(),
@@ -152,13 +152,14 @@ pub fn generate_extrinsic_with_pair(
 		frame_system::CheckWeight::<Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
 		cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::<Runtime>::new(),
-	);
+	)
+		.into();
 
 	let function = function.into();
 
 	let raw_payload = SignedPayload::from_raw(
 		function.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		((), VERSION.spec_version, genesis_block, current_block_hash, (), (), (), ()),
 	);
 	let signature = raw_payload.using_encoded(|e| origin.sign(e));
@@ -167,7 +168,7 @@ pub fn generate_extrinsic_with_pair(
 		function,
 		origin.public().into(),
 		Signature::Sr25519(signature),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/cumulus/test/runtime/src/lib.rs b/cumulus/test/runtime/src/lib.rs
index 5ccec8983e9..154948a24b4 100644
--- a/cumulus/test/runtime/src/lib.rs
+++ b/cumulus/test/runtime/src/lib.rs
@@ -246,6 +246,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = ();
 	type OperationalFeeMultiplier = ConstU8<5>;
+	type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight<Runtime>;
 }
 
 impl pallet_sudo::Config for Runtime {
@@ -322,8 +323,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckGenesis<Runtime>,
@@ -335,7 +336,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
@@ -346,7 +347,7 @@ pub type Executive = frame_executive::Executive<
 	TestOnRuntimeUpgrade,
 >;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 
 pub struct TestOnRuntimeUpgrade;
 
diff --git a/cumulus/test/service/Cargo.toml b/cumulus/test/service/Cargo.toml
index 27273f4e0a8..39e8aeba433 100644
--- a/cumulus/test/service/Cargo.toml
+++ b/cumulus/test/service/Cargo.toml
@@ -104,10 +104,12 @@ substrate-test-utils = { path = "../../../substrate/test-utils" }
 runtime-benchmarks = [
 	"cumulus-pallet-parachain-system/runtime-benchmarks",
 	"cumulus-primitives-core/runtime-benchmarks",
+	"cumulus-primitives-storage-weight-reclaim/runtime-benchmarks",
 	"cumulus-test-client/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
 	"pallet-im-online/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"parachains-common/runtime-benchmarks",
 	"polkadot-cli/runtime-benchmarks",
 	"polkadot-primitives/runtime-benchmarks",
diff --git a/cumulus/test/service/src/bench_utils.rs b/cumulus/test/service/src/bench_utils.rs
index 4ace894b392..15128b23787 100644
--- a/cumulus/test/service/src/bench_utils.rs
+++ b/cumulus/test/service/src/bench_utils.rs
@@ -69,7 +69,7 @@ pub fn extrinsic_set_time(client: &TestClient) -> OpaqueExtrinsic {
 
 	let timestamp = best_number as u64 * cumulus_test_runtime::MinimumPeriod::get();
 	cumulus_test_runtime::UncheckedExtrinsic {
-		signature: None,
+		preamble: sp_runtime::generic::Preamble::Bare,
 		function: cumulus_test_runtime::RuntimeCall::Timestamp(pallet_timestamp::Call::set {
 			now: timestamp,
 		}),
@@ -102,7 +102,7 @@ pub fn extrinsic_set_validation_data(
 	};
 
 	cumulus_test_runtime::UncheckedExtrinsic {
-		signature: None,
+		preamble: sp_runtime::generic::Preamble::Bare,
 		function: cumulus_test_runtime::RuntimeCall::ParachainSystem(
 			cumulus_pallet_parachain_system::Call::set_validation_data { data },
 		),
diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs
index 3554a383f21..f05dc5f180f 100644
--- a/cumulus/test/service/src/lib.rs
+++ b/cumulus/test/service/src/lib.rs
@@ -883,7 +883,7 @@ pub fn construct_extrinsic(
 		.map(|c| c / 2)
 		.unwrap_or(2) as u64;
 	let tip = 0;
-	let extra: runtime::SignedExtra = (
+	let tx_ext: runtime::TxExtension = (
 		frame_system::CheckNonZeroSender::<runtime::Runtime>::new(),
 		frame_system::CheckSpecVersion::<runtime::Runtime>::new(),
 		frame_system::CheckGenesis::<runtime::Runtime>::new(),
@@ -895,10 +895,11 @@ pub fn construct_extrinsic(
 		frame_system::CheckWeight::<runtime::Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<runtime::Runtime>::from(tip),
 		cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::<runtime::Runtime>::new(),
-	);
+	)
+		.into();
 	let raw_payload = runtime::SignedPayload::from_raw(
 		function.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		((), runtime::VERSION.spec_version, genesis_block, current_block_hash, (), (), (), ()),
 	);
 	let signature = raw_payload.using_encoded(|e| caller.sign(e));
@@ -906,7 +907,7 @@ pub fn construct_extrinsic(
 		function,
 		caller.public().into(),
 		runtime::Signature::Sr25519(signature),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/docs/sdk/src/reference_docs/extrinsic_encoding.rs b/docs/sdk/src/reference_docs/extrinsic_encoding.rs
index 8c8568a228f..be1af500038 100644
--- a/docs/sdk/src/reference_docs/extrinsic_encoding.rs
+++ b/docs/sdk/src/reference_docs/extrinsic_encoding.rs
@@ -56,7 +56,7 @@
 //!     version_and_signed,
 //!     from_address,
 //!     signature,
-//!     signed_extensions_extra,
+//!     transaction_extensions_extra,
 //! )
 //! ```
 //!
@@ -90,31 +90,31 @@
 //! The signature type used on the Polkadot relay chain is [`sp_runtime::MultiSignature`]; the
 //! variants there are the types of signature that can be provided.
 //!
-//! ### signed_extensions_extra
+//! ### transaction_extensions_extra
 //!
 //! This is the concatenation of the [SCALE encoded][frame::deps::codec] bytes representing each of
-//! the [_signed extensions_][sp_runtime::traits::SignedExtension], and are configured by the
-//! fourth generic parameter of [`sp_runtime::generic::UncheckedExtrinsic`]. Learn more about
-//! signed extensions [here][crate::reference_docs::signed_extensions].
+//! the [_transaction extensions_][sp_runtime::traits::TransactionExtension], and are configured by
+//! the fourth generic parameter of [`sp_runtime::generic::UncheckedExtrinsic`]. Learn more about
+//! transaction extensions [here][crate::reference_docs::transaction_extensions].
 //!
-//! When it comes to constructing an extrinsic, each signed extension has two things that we are
-//! interested in here:
+//! When it comes to constructing an extrinsic, each transaction extension has two things that we
+//! are interested in here:
 //!
-//! - The actual SCALE encoding of the signed extension type itself; this is what will form our
-//!   `signed_extensions_extra` bytes.
-//! - An `AdditionalSigned` type. This is SCALE encoded into the `signed_extensions_additional` data
-//!   of the _signed payload_ (see below).
+//! - The actual SCALE encoding of the transaction extension type itself; this is what will form our
+//!   `transaction_extensions_extra` bytes.
+//! - An `Implicit` type. This is SCALE encoded into the `transaction_extensions_implicit` data of
+//!   the _signed payload_ (see below).
 //!
 //! Either (or both) of these can encode to zero bytes.
 //!
-//! Each chain configures the set of signed extensions that it uses in its runtime configuration.
-//! At the time of writing, Polkadot configures them
+//! Each chain configures the set of transaction extensions that it uses in its runtime
+//! configuration. At the time of writing, Polkadot configures them
 //! [here](https://github.com/polkadot-fellows/runtimes/blob/1dc04eb954eadf8aadb5d83990b89662dbb5a074/relay/polkadot/src/lib.rs#L1432C25-L1432C25).
-//! Some of the common signed extensions are defined
-//! [here][frame::deps::frame_system#signed-extensions].
+//! Some of the common transaction extensions are defined
+//! [here][frame::deps::frame_system#transaction-extensions].
 //!
-//! Information about exactly which signed extensions are present on a chain and in what order is
-//! also a part of the metadata for the chain. For V15 metadata, it can be
+//! Information about exactly which transaction extensions are present on a chain and in what order
+//! is also a part of the metadata for the chain. For V15 metadata, it can be
 //! [found here][frame::deps::frame_support::__private::metadata::v15::ExtrinsicMetadata].
 //!
 //! ## call_data
@@ -163,8 +163,8 @@
 //! ```text
 //! signed_payload = concat(
 //!     call_data,
-//!     signed_extensions_extra,
-//!     signed_extensions_additional,
+//!     transaction_extensions_extra,
+//!     transaction_extensions_implicit,
 //! )
 //!
 //! if length(signed_payload) > 256 {
@@ -172,16 +172,16 @@
 //! }
 //! ```
 //!
-//! The bytes representing `call_data` and `signed_extensions_extra` can be obtained as described
-//! above. `signed_extensions_additional` is constructed by SCALE encoding the
-//! ["additional signed" data][sp_runtime::traits::SignedExtension::AdditionalSigned] for each
-//! signed extension that the chain is using, in order.
+//! The bytes representing `call_data` and `transaction_extensions_extra` can be obtained as
+//! descibed above. `transaction_extensions_implicit` is constructed by SCALE encoding the
+//! ["implicit" data][sp_runtime::traits::TransactionExtensionBase::Implicit] for each
+//! transaction extension that the chain is using, in order.
 //!
 //! Once we've concatenated those together, we hash the result if it's greater than 256 bytes in
 //! length using a Blake2 256bit hasher.
 //!
 //! The [`sp_runtime::generic::SignedPayload`] type takes care of assembling the correct payload
-//! for us, given `call_data` and a tuple of signed extensions.
+//! for us, given `call_data` and a tuple of transaction extensions.
 //!
 //! # Example Encoding
 //!
@@ -192,11 +192,12 @@
 #[docify::export]
 pub mod call_data {
 	use parity_scale_codec::{Decode, Encode};
+	use sp_runtime::{traits::Dispatchable, DispatchResultWithInfo};
 
 	// The outer enum composes calls within
 	// different pallets together. We have two
 	// pallets, "PalletA" and "PalletB".
-	#[derive(Encode, Decode)]
+	#[derive(Encode, Decode, Clone)]
 	pub enum Call {
 		#[codec(index = 0)]
 		PalletA(PalletACall),
@@ -207,23 +208,33 @@ pub mod call_data {
 	// An inner enum represents the calls within
 	// a specific pallet. "PalletA" has one call,
 	// "Foo".
-	#[derive(Encode, Decode)]
+	#[derive(Encode, Decode, Clone)]
 	pub enum PalletACall {
 		#[codec(index = 0)]
 		Foo(String),
 	}
 
-	#[derive(Encode, Decode)]
+	#[derive(Encode, Decode, Clone)]
 	pub enum PalletBCall {
 		#[codec(index = 0)]
 		Bar(String),
 	}
+
+	impl Dispatchable for Call {
+		type RuntimeOrigin = ();
+		type Config = ();
+		type Info = ();
+		type PostInfo = ();
+		fn dispatch(self, _origin: Self::RuntimeOrigin) -> DispatchResultWithInfo<Self::PostInfo> {
+			Ok(())
+		}
+	}
 }
 
 #[docify::export]
 pub mod encoding_example {
 	use super::call_data::{Call, PalletACall};
-	use crate::reference_docs::signed_extensions::signed_extensions_example;
+	use crate::reference_docs::transaction_extensions::transaction_extensions_example;
 	use parity_scale_codec::Encode;
 	use sp_core::crypto::AccountId32;
 	use sp_keyring::sr25519::Keyring;
@@ -232,34 +243,40 @@ pub mod encoding_example {
 		MultiAddress, MultiSignature,
 	};
 
-	// Define some signed extensions to use. We'll use a couple of examples
-	// from the signed extensions reference doc.
-	type SignedExtensions =
-		(signed_extensions_example::AddToPayload, signed_extensions_example::AddToSignaturePayload);
+	// Define some transaction extensions to use. We'll use a couple of examples
+	// from the transaction extensions reference doc.
+	type TransactionExtensions = (
+		transaction_extensions_example::AddToPayload,
+		transaction_extensions_example::AddToSignaturePayload,
+	);
 
 	// We'll use `UncheckedExtrinsic` to encode our extrinsic for us. We set
 	// the address and signature type to those used on Polkadot, use our custom
-	// `Call` type, and use our custom set of `SignedExtensions`.
-	type Extrinsic =
-		UncheckedExtrinsic<MultiAddress<AccountId32, ()>, Call, MultiSignature, SignedExtensions>;
+	// `Call` type, and use our custom set of `TransactionExtensions`.
+	type Extrinsic = UncheckedExtrinsic<
+		MultiAddress<AccountId32, ()>,
+		Call,
+		MultiSignature,
+		TransactionExtensions,
+	>;
 
 	pub fn encode_demo_extrinsic() -> Vec<u8> {
 		// The "from" address will be our Alice dev account.
 		let from_address = MultiAddress::<AccountId32, ()>::Id(Keyring::Alice.to_account_id());
 
-		// We provide some values for our expected signed extensions.
-		let signed_extensions = (
-			signed_extensions_example::AddToPayload(1),
-			signed_extensions_example::AddToSignaturePayload,
+		// We provide some values for our expected transaction extensions.
+		let transaction_extensions = (
+			transaction_extensions_example::AddToPayload(1),
+			transaction_extensions_example::AddToSignaturePayload,
 		);
 
 		// Construct our call data:
 		let call_data = Call::PalletA(PalletACall::Foo("Hello".to_string()));
 
 		// The signed payload. This takes care of encoding the call_data,
-		// signed_extensions_extra and signed_extensions_additional, and hashing
+		// transaction_extensions_extra and transaction_extensions_implicit, and hashing
 		// the result if it's > 256 bytes:
-		let signed_payload = SignedPayload::new(&call_data, signed_extensions.clone());
+		let signed_payload = SignedPayload::new(call_data.clone(), transaction_extensions.clone());
 
 		// Sign the signed payload with our Alice dev account's private key,
 		// and wrap the signature into the expected type:
@@ -269,7 +286,7 @@ pub mod encoding_example {
 		};
 
 		// Now, we can build and encode our extrinsic:
-		let ext = Extrinsic::new_signed(call_data, from_address, signature, signed_extensions);
+		let ext = Extrinsic::new_signed(call_data, from_address, signature, transaction_extensions);
 
 		let encoded_ext = ext.encode();
 		encoded_ext
diff --git a/docs/sdk/src/reference_docs/frame_runtime_types.rs b/docs/sdk/src/reference_docs/frame_runtime_types.rs
index b5838b79e51..883892729d1 100644
--- a/docs/sdk/src/reference_docs/frame_runtime_types.rs
+++ b/docs/sdk/src/reference_docs/frame_runtime_types.rs
@@ -130,7 +130,7 @@
 //! * [`crate::reference_docs::frame_origin`] explores further details about the usage of
 //!   `RuntimeOrigin`.
 //! * [`RuntimeCall`] is a particularly interesting composite enum as it dictates the encoding of an
-//!   extrinsic. See [`crate::reference_docs::signed_extensions`] for more information.
+//!   extrinsic. See [`crate::reference_docs::transaction_extensions`] for more information.
 //! * See the documentation of [`construct_runtime`].
 //! * See the corresponding lecture in the [pba-book](https://polkadot-blockchain-academy.github.io/pba-book/frame/outer-enum/page.html).
 //!
diff --git a/docs/sdk/src/reference_docs/mod.rs b/docs/sdk/src/reference_docs/mod.rs
index 0bd204e4b6a..3fd815d2a15 100644
--- a/docs/sdk/src/reference_docs/mod.rs
+++ b/docs/sdk/src/reference_docs/mod.rs
@@ -39,9 +39,9 @@ pub mod runtime_vs_smart_contract;
 /// Learn about how extrinsics are encoded to be transmitted to a node and stored in blocks.
 pub mod extrinsic_encoding;
 
-/// Learn about the signed extensions that form a part of extrinsics.
+/// Learn about the transaction extensions that form a part of extrinsics.
 // TODO: @jsdw https://github.com/paritytech/polkadot-sdk-docs/issues/42
-pub mod signed_extensions;
+pub mod transaction_extensions;
 
 /// Learn about *Origins*, a topic in FRAME that enables complex account abstractions to be built.
 pub mod frame_origin;
diff --git a/docs/sdk/src/reference_docs/signed_extensions.rs b/docs/sdk/src/reference_docs/signed_extensions.rs
deleted file mode 100644
index 28b1426536b..00000000000
--- a/docs/sdk/src/reference_docs/signed_extensions.rs
+++ /dev/null
@@ -1,79 +0,0 @@
-//! Signed extensions are, briefly, a means for different chains to extend the "basic" extrinsic
-//! format with custom data that can be checked by the runtime.
-//!
-//! # Example
-//!
-//! Defining a couple of very simple signed extensions looks like the following:
-#![doc = docify::embed!("./src/reference_docs/signed_extensions.rs", signed_extensions_example)]
-
-#[docify::export]
-pub mod signed_extensions_example {
-	use parity_scale_codec::{Decode, Encode};
-	use scale_info::TypeInfo;
-	use sp_runtime::traits::SignedExtension;
-
-	// This doesn't actually check anything, but simply allows
-	// some arbitrary `u32` to be added to the extrinsic payload
-	#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
-	pub struct AddToPayload(pub u32);
-
-	impl SignedExtension for AddToPayload {
-		const IDENTIFIER: &'static str = "AddToPayload";
-		type AccountId = ();
-		type Call = ();
-		type AdditionalSigned = ();
-		type Pre = ();
-
-		fn additional_signed(
-			&self,
-		) -> Result<
-			Self::AdditionalSigned,
-			sp_runtime::transaction_validity::TransactionValidityError,
-		> {
-			Ok(())
-		}
-
-		fn pre_dispatch(
-			self,
-			_who: &Self::AccountId,
-			_call: &Self::Call,
-			_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
-			_len: usize,
-		) -> Result<Self::Pre, sp_runtime::transaction_validity::TransactionValidityError> {
-			Ok(())
-		}
-	}
-
-	// This is the opposite; nothing will be added to the extrinsic payload,
-	// but the AdditionalSigned type (`1234u32`) will be added to the
-	// payload to be signed.
-	#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
-	pub struct AddToSignaturePayload;
-
-	impl SignedExtension for AddToSignaturePayload {
-		const IDENTIFIER: &'static str = "AddToSignaturePayload";
-		type AccountId = ();
-		type Call = ();
-		type AdditionalSigned = u32;
-		type Pre = ();
-
-		fn additional_signed(
-			&self,
-		) -> Result<
-			Self::AdditionalSigned,
-			sp_runtime::transaction_validity::TransactionValidityError,
-		> {
-			Ok(1234)
-		}
-
-		fn pre_dispatch(
-			self,
-			_who: &Self::AccountId,
-			_call: &Self::Call,
-			_info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
-			_len: usize,
-		) -> Result<Self::Pre, sp_runtime::transaction_validity::TransactionValidityError> {
-			Ok(())
-		}
-	}
-}
diff --git a/docs/sdk/src/reference_docs/transaction_extensions.rs b/docs/sdk/src/reference_docs/transaction_extensions.rs
new file mode 100644
index 00000000000..4f96d665d9b
--- /dev/null
+++ b/docs/sdk/src/reference_docs/transaction_extensions.rs
@@ -0,0 +1,57 @@
+//! Transaction extensions are, briefly, a means for different chains to extend the "basic"
+//! extrinsic format with custom data that can be checked by the runtime.
+//!
+//! # Example
+//!
+//! Defining a couple of very simple transaction extensions looks like the following:
+#![doc = docify::embed!("./src/reference_docs/transaction_extensions.rs", transaction_extensions_example)]
+
+#[docify::export]
+pub mod transaction_extensions_example {
+	use parity_scale_codec::{Decode, Encode};
+	use scale_info::TypeInfo;
+	use sp_runtime::{
+		impl_tx_ext_default,
+		traits::{Dispatchable, TransactionExtension, TransactionExtensionBase},
+		TransactionValidityError,
+	};
+
+	// This doesn't actually check anything, but simply allows
+	// some arbitrary `u32` to be added to the extrinsic payload
+	#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
+	pub struct AddToPayload(pub u32);
+
+	impl TransactionExtensionBase for AddToPayload {
+		const IDENTIFIER: &'static str = "AddToPayload";
+		type Implicit = ();
+	}
+
+	impl<Call: Dispatchable> TransactionExtension<Call, ()> for AddToPayload {
+		type Pre = ();
+		type Val = ();
+
+		impl_tx_ext_default!(Call; (); validate prepare);
+	}
+
+	// This is the opposite; nothing will be added to the extrinsic payload,
+	// but the Implicit type (`1234u32`) will be added to the
+	// payload to be signed.
+	#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
+	pub struct AddToSignaturePayload;
+
+	impl TransactionExtensionBase for AddToSignaturePayload {
+		const IDENTIFIER: &'static str = "AddToSignaturePayload";
+		type Implicit = u32;
+
+		fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+			Ok(1234)
+		}
+	}
+
+	impl<Call: Dispatchable> TransactionExtension<Call, ()> for AddToSignaturePayload {
+		type Pre = ();
+		type Val = ();
+
+		impl_tx_ext_default!(Call; (); validate prepare);
+	}
+}
diff --git a/polkadot/node/service/Cargo.toml b/polkadot/node/service/Cargo.toml
index 734dcbdeb44..180de70ad6c 100644
--- a/polkadot/node/service/Cargo.toml
+++ b/polkadot/node/service/Cargo.toml
@@ -196,6 +196,7 @@ runtime-benchmarks = [
 	"pallet-babe/runtime-benchmarks",
 	"pallet-im-online/runtime-benchmarks",
 	"pallet-staking/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
 	"polkadot-primitives/runtime-benchmarks",
 	"polkadot-runtime-parachains/runtime-benchmarks",
diff --git a/polkadot/node/service/src/benchmarking.rs b/polkadot/node/service/src/benchmarking.rs
index 400daf1aee3..29acc5c3ca8 100644
--- a/polkadot/node/service/src/benchmarking.rs
+++ b/polkadot/node/service/src/benchmarking.rs
@@ -189,7 +189,7 @@ fn westend_sign_call(
 	use sp_core::Pair;
 	use westend_runtime as runtime;
 
-	let extra: runtime::SignedExtra = (
+	let tx_ext: runtime::TxExtension = (
 		frame_system::CheckNonZeroSender::<runtime::Runtime>::new(),
 		frame_system::CheckSpecVersion::<runtime::Runtime>::new(),
 		frame_system::CheckTxVersion::<runtime::Runtime>::new(),
@@ -201,11 +201,12 @@ fn westend_sign_call(
 		frame_system::CheckNonce::<runtime::Runtime>::from(nonce),
 		frame_system::CheckWeight::<runtime::Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<runtime::Runtime>::from(0),
-	);
+	)
+		.into();
 
 	let payload = runtime::SignedPayload::from_raw(
 		call.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		(
 			(),
 			runtime::VERSION.spec_version,
@@ -223,7 +224,7 @@ fn westend_sign_call(
 		call,
 		sp_runtime::AccountId32::from(acc.public()).into(),
 		polkadot_core_primitives::Signature::Sr25519(signature.clone()),
-		extra,
+		tx_ext,
 	)
 	.into()
 }
@@ -241,7 +242,7 @@ fn rococo_sign_call(
 	use rococo_runtime as runtime;
 	use sp_core::Pair;
 
-	let extra: runtime::SignedExtra = (
+	let tx_ext: runtime::TxExtension = (
 		frame_system::CheckNonZeroSender::<runtime::Runtime>::new(),
 		frame_system::CheckSpecVersion::<runtime::Runtime>::new(),
 		frame_system::CheckTxVersion::<runtime::Runtime>::new(),
@@ -253,11 +254,12 @@ fn rococo_sign_call(
 		frame_system::CheckNonce::<runtime::Runtime>::from(nonce),
 		frame_system::CheckWeight::<runtime::Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<runtime::Runtime>::from(0),
-	);
+	)
+		.into();
 
 	let payload = runtime::SignedPayload::from_raw(
 		call.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		(
 			(),
 			runtime::VERSION.spec_version,
@@ -275,7 +277,7 @@ fn rococo_sign_call(
 		call,
 		sp_runtime::AccountId32::from(acc.public()).into(),
 		polkadot_core_primitives::Signature::Sr25519(signature.clone()),
-		extra,
+		tx_ext,
 	)
 	.into()
 }
diff --git a/polkadot/node/test/service/Cargo.toml b/polkadot/node/test/service/Cargo.toml
index e7892abcd87..02b227e6f34 100644
--- a/polkadot/node/test/service/Cargo.toml
+++ b/polkadot/node/test/service/Cargo.toml
@@ -71,6 +71,7 @@ runtime-benchmarks = [
 	"frame-system/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
 	"pallet-staking/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
 	"polkadot-primitives/runtime-benchmarks",
 	"polkadot-runtime-common/runtime-benchmarks",
diff --git a/polkadot/node/test/service/src/lib.rs b/polkadot/node/test/service/src/lib.rs
index ca904bae28d..1876595c7b4 100644
--- a/polkadot/node/test/service/src/lib.rs
+++ b/polkadot/node/test/service/src/lib.rs
@@ -32,7 +32,7 @@ use polkadot_service::{
 	Error, FullClient, IsParachainNode, NewFull, OverseerGen, PrometheusConfig,
 };
 use polkadot_test_runtime::{
-	ParasCall, ParasSudoWrapperCall, Runtime, SignedExtra, SignedPayload, SudoCall,
+	ParasCall, ParasSudoWrapperCall, Runtime, SignedPayload, SudoCall, TxExtension,
 	UncheckedExtrinsic, VERSION,
 };
 
@@ -382,7 +382,7 @@ pub fn construct_extrinsic(
 	let period =
 		BlockHashCount::get().checked_next_power_of_two().map(|c| c / 2).unwrap_or(2) as u64;
 	let tip = 0;
-	let extra: SignedExtra = (
+	let tx_ext: TxExtension = (
 		frame_system::CheckNonZeroSender::<Runtime>::new(),
 		frame_system::CheckSpecVersion::<Runtime>::new(),
 		frame_system::CheckTxVersion::<Runtime>::new(),
@@ -391,10 +391,11 @@ pub fn construct_extrinsic(
 		frame_system::CheckNonce::<Runtime>::from(nonce),
 		frame_system::CheckWeight::<Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
-	);
+	)
+		.into();
 	let raw_payload = SignedPayload::from_raw(
 		function.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		(
 			(),
 			VERSION.spec_version,
@@ -411,7 +412,7 @@ pub fn construct_extrinsic(
 		function.clone(),
 		polkadot_test_runtime::Address::Id(caller.public().into()),
 		polkadot_primitives::Signature::Sr25519(signature.clone()),
-		extra.clone(),
+		tx_ext.clone(),
 	)
 }
 
diff --git a/polkadot/runtime/common/Cargo.toml b/polkadot/runtime/common/Cargo.toml
index eae5d4fb2ef..c2205938295 100644
--- a/polkadot/runtime/common/Cargo.toml
+++ b/polkadot/runtime/common/Cargo.toml
@@ -132,6 +132,7 @@ runtime-benchmarks = [
 	"pallet-identity/runtime-benchmarks",
 	"pallet-staking/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"pallet-vesting/runtime-benchmarks",
 	"primitives/runtime-benchmarks",
diff --git a/polkadot/runtime/common/src/claims.rs b/polkadot/runtime/common/src/claims.rs
index 68f42914e44..57a95b22af3 100644
--- a/polkadot/runtime/common/src/claims.rs
+++ b/polkadot/runtime/common/src/claims.rs
@@ -29,7 +29,11 @@ use scale_info::TypeInfo;
 use serde::{self, Deserialize, Deserializer, Serialize, Serializer};
 use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256};
 use sp_runtime::{
-	traits::{CheckedSub, DispatchInfoOf, SignedExtension, Zero},
+	impl_tx_ext_default,
+	traits::{
+		AsSystemOriginSigner, CheckedSub, DispatchInfoOf, Dispatchable, TransactionExtension,
+		TransactionExtensionBase, Zero,
+	},
 	transaction_validity::{
 		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
 	},
@@ -50,6 +54,7 @@ pub trait WeightInfo {
 	fn claim_attest() -> Weight;
 	fn attest() -> Weight;
 	fn move_claim() -> Weight;
+	fn prevalidate_attests() -> Weight;
 }
 
 pub struct TestWeightInfo;
@@ -69,6 +74,9 @@ impl WeightInfo for TestWeightInfo {
 	fn move_claim() -> Weight {
 		Weight::zero()
 	}
+	fn prevalidate_attests() -> Weight {
+		Weight::zero()
+	}
 }
 
 /// The kind of statement an account needs to make for a claim to be valid.
@@ -84,7 +92,7 @@ pub enum StatementKind {
 
 impl StatementKind {
 	/// Convert this to the (English) statement it represents.
-	fn to_text(self) -> &'static [u8] {
+	pub fn to_text(self) -> &'static [u8] {
 		match self {
 			StatementKind::Regular =>
 				&b"I hereby agree to the terms of the statement whose SHA-256 multihash is \
@@ -166,6 +174,13 @@ pub mod pallet {
 	#[pallet::without_storage_info]
 	pub struct Pallet<T>(_);
 
+	#[cfg(feature = "runtime-benchmarks")]
+	/// Helper trait to benchmark the `PrevalidateAttests` transaction extension.
+	pub trait BenchmarkHelperTrait<RuntimeCall, DispatchInfo> {
+		/// `Call` to be used when benchmarking the transaction extension.
+		fn default_call_and_info() -> (RuntimeCall, DispatchInfo);
+	}
+
 	/// Configuration trait.
 	#[pallet::config]
 	pub trait Config: frame_system::Config {
@@ -176,6 +191,12 @@ pub mod pallet {
 		type Prefix: Get<&'static [u8]>;
 		type MoveClaimOrigin: EnsureOrigin<Self::RuntimeOrigin>;
 		type WeightInfo: WeightInfo;
+		#[cfg(feature = "runtime-benchmarks")]
+		/// Benchmark helper
+		type BenchmarkHelper: BenchmarkHelperTrait<
+			Self::RuntimeCall,
+			DispatchInfoOf<Self::RuntimeCall>,
+		>;
 	}
 
 	#[pallet::event]
@@ -402,7 +423,7 @@ pub mod pallet {
 		/// Attest to a statement, needed to finalize the claims process.
 		///
 		/// WARNING: Insecure unless your chain includes `PrevalidateAttests` as a
-		/// `SignedExtension`.
+		/// `TransactionExtension`.
 		///
 		/// Unsigned Validation:
 		/// A call to attest is deemed valid if the sender has a `Preclaim` registered
@@ -612,46 +633,46 @@ impl<T: Config> PrevalidateAttests<T>
 where
 	<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
 {
-	/// Create new `SignedExtension` to check runtime version.
+	/// Create new `TransactionExtension` to check runtime version.
 	pub fn new() -> Self {
 		Self(sp_std::marker::PhantomData)
 	}
 }
 
-impl<T: Config> SignedExtension for PrevalidateAttests<T>
+impl<T: Config> TransactionExtensionBase for PrevalidateAttests<T>
 where
 	<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
 {
-	type AccountId = T::AccountId;
-	type Call = <T as frame_system::Config>::RuntimeCall;
-	type AdditionalSigned = ();
-	type Pre = ();
 	const IDENTIFIER: &'static str = "PrevalidateAttests";
+	type Implicit = ();
+}
 
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
-		Ok(())
-	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
+impl<T: Config, Context> TransactionExtension<T::RuntimeCall, Context> for PrevalidateAttests<T>
+where
+	<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
+	<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin:
+		AsSystemOriginSigner<T::AccountId> + Clone,
+{
+	type Pre = ();
+	type Val = ();
 
 	// <weight>
 	// The weight of this logic is included in the `attest` dispatchable.
 	// </weight>
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: <T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <T::RuntimeCall as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
 		if let Some(local_call) = call.is_sub_type() {
 			if let Call::attest { statement: attested_statement } = local_call {
 				let signer = Preclaims::<T>::get(who)
@@ -662,8 +683,9 @@ where
 				}
 			}
 		}
-		Ok(ValidTransaction::default())
+		Ok((ValidTransaction::default(), (), origin))
 	}
+	impl_tx_ext_default!(T::RuntimeCall; Context; prepare);
 }
 
 #[cfg(any(test, feature = "runtime-benchmarks"))]
@@ -696,7 +718,7 @@ mod secp_utils {
 }
 
 #[cfg(test)]
-mod tests {
+pub(super) mod tests {
 	use super::*;
 	use hex_literal::hex;
 	use secp_utils::*;
@@ -714,8 +736,11 @@ mod tests {
 	};
 	use pallet_balances;
 	use sp_runtime::{
-		traits::Identity, transaction_validity::TransactionLongevity, BuildStorage,
-		DispatchError::BadOrigin, TokenError,
+		traits::{DispatchTransaction, Identity},
+		transaction_validity::TransactionLongevity,
+		BuildStorage,
+		DispatchError::BadOrigin,
+		TokenError,
 	};
 
 	type Block = frame_system::mocking::MockBlock<Test>;
@@ -790,6 +815,19 @@ mod tests {
 		type Prefix = Prefix;
 		type MoveClaimOrigin = frame_system::EnsureSignedBy<Six, u64>;
 		type WeightInfo = TestWeightInfo;
+		#[cfg(feature = "runtime-benchmarks")]
+		type BenchmarkHelper = ();
+	}
+
+	#[cfg(feature = "runtime-benchmarks")]
+	impl BenchmarkHelperTrait<RuntimeCall, DispatchInfoOf<RuntimeCall>> for () {
+		fn default_call_and_info() -> (RuntimeCall, DispatchInfoOf<RuntimeCall>) {
+			let call = RuntimeCall::Claims(crate::claims::Call::attest {
+				statement: StatementKind::Regular.to_text().to_vec(),
+			});
+			let info = call.get_dispatch_info();
+			(call, info)
+		}
 	}
 
 	fn alice() -> libsecp256k1::SecretKey {
@@ -1071,8 +1109,8 @@ mod tests {
 			});
 			let di = c.get_dispatch_info();
 			assert_eq!(di.pays_fee, Pays::No);
-			let r = p.validate(&42, &c, &di, 20);
-			assert_eq!(r, TransactionValidity::Ok(ValidTransaction::default()));
+			let r = p.validate_only(Some(42).into(), &c, &di, 20);
+			assert_eq!(r.unwrap().0, ValidTransaction::default());
 		});
 	}
 
@@ -1084,13 +1122,13 @@ mod tests {
 				statement: StatementKind::Regular.to_text().to_vec(),
 			});
 			let di = c.get_dispatch_info();
-			let r = p.validate(&42, &c, &di, 20);
+			let r = p.validate_only(Some(42).into(), &c, &di, 20);
 			assert!(r.is_err());
 			let c = RuntimeCall::Claims(ClaimsCall::attest {
 				statement: StatementKind::Saft.to_text().to_vec(),
 			});
 			let di = c.get_dispatch_info();
-			let r = p.validate(&69, &c, &di, 20);
+			let r = p.validate_only(Some(69).into(), &c, &di, 20);
 			assert!(r.is_err());
 		});
 	}
@@ -1444,14 +1482,17 @@ mod tests {
 }
 
 #[cfg(feature = "runtime-benchmarks")]
-mod benchmarking {
+pub(super) mod benchmarking {
 	use super::*;
 	use crate::claims::Call;
 	use frame_benchmarking::{account, benchmarks};
 	use frame_support::traits::UnfilteredDispatchable;
 	use frame_system::RawOrigin;
 	use secp_utils::*;
-	use sp_runtime::{traits::ValidateUnsigned, DispatchResult};
+	use sp_runtime::{
+		traits::{DispatchTransaction, ValidateUnsigned},
+		DispatchResult,
+	};
 
 	const SEED: u32 = 0;
 
@@ -1487,6 +1528,11 @@ mod benchmarking {
 	}
 
 	benchmarks! {
+		where_clause { where <T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
+			<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
+			<<T as frame_system::Config>::RuntimeCall as Dispatchable>::PostInfo: Default,
+		}
+
 		// Benchmark `claim` including `validate_unsigned` logic.
 		claim {
 			let c = MAX_CLAIMS;
@@ -1665,6 +1711,38 @@ mod benchmarking {
 			}
 		}
 
+		prevalidate_attests {
+			let c = MAX_CLAIMS;
+
+			for i in 0 .. c / 2 {
+				create_claim::<T>(c)?;
+				create_claim_attest::<T>(u32::MAX - c)?;
+			}
+
+			let ext = PrevalidateAttests::<T>::new();
+			let (call, info) = T::BenchmarkHelper::default_call_and_info();
+			let attest_c = u32::MAX - c;
+			let secret_key = libsecp256k1::SecretKey::parse(&keccak_256(&attest_c.encode())).unwrap();
+			let eth_address = eth(&secret_key);
+			let account: T::AccountId = account("user", c, SEED);
+			let vesting = Some((100_000u32.into(), 1_000u32.into(), 100u32.into()));
+			let statement = StatementKind::Regular;
+			let signature = sig::<T>(&secret_key, &account.encode(), statement.to_text());
+			super::Pallet::<T>::mint_claim(RawOrigin::Root.into(), eth_address, VALUE.into(), vesting, Some(statement))?;
+			Preclaims::<T>::insert(&account, eth_address);
+			assert_eq!(Claims::<T>::get(eth_address), Some(VALUE.into()));
+		}: {
+			assert!(ext.test_run(
+				RawOrigin::Signed(account).into(),
+				&call,
+				&info,
+				0,
+				|_| {
+					Ok(Default::default())
+				}
+			).unwrap().is_ok());
+		}
+
 		impl_benchmark_test_suite!(
 			Pallet,
 			crate::claims::tests::new_test_ext(),
diff --git a/polkadot/runtime/rococo/Cargo.toml b/polkadot/runtime/rococo/Cargo.toml
index 3dc59cc1728..61ca1635ac9 100644
--- a/polkadot/runtime/rococo/Cargo.toml
+++ b/polkadot/runtime/rococo/Cargo.toml
@@ -246,6 +246,7 @@ runtime-benchmarks = [
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
 	"pallet-tips/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-vesting/runtime-benchmarks",
diff --git a/polkadot/runtime/rococo/constants/src/weights/block_weights.rs b/polkadot/runtime/rococo/constants/src/weights/block_weights.rs
index e2aa4a6cab7..f7dc2f19316 100644
--- a/polkadot/runtime/rococo/constants/src/weights/block_weights.rs
+++ b/polkadot/runtime/rococo/constants/src/weights/block_weights.rs
@@ -14,13 +14,13 @@
 // You should have received a copy of the GNU General Public License
 // along with Polkadot.  If not, see <http://www.gnu.org/licenses/>.
 
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26 (Y/M/D)
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29 (Y/M/D)
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development`
 //! WARMUPS: `10`, REPEAT: `100`
-//! WEIGHT-PATH: `runtime/rococo/constants/src/weights/`
+//! WEIGHT-PATH: `./polkadot/runtime/rococo/constants/src/weights/`
 //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0`
 
 // Executed Command:
@@ -28,12 +28,11 @@
 //   benchmark
 //   overhead
 //   --chain=rococo-dev
-//   --execution=wasm
 //   --wasm-execution=compiled
-//   --weight-path=runtime/rococo/constants/src/weights/
+//   --weight-path=./polkadot/runtime/rococo/constants/src/weights/
 //   --warmup=10
 //   --repeat=100
-//   --header=./file_header.txt
+//   --header=./polkadot/file_header.txt
 
 use sp_core::parameter_types;
 use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight};
@@ -43,17 +42,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 408_659, 450_716
-	///   Average:  417_412
-	///   Median:   411_177
-	///   Std-Dev:  12242.31
+	///   Min, Max: 440_142, 476_907
+	///   Average:  450_240
+	///   Median:   448_633
+	///   Std-Dev:  7301.18
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 445_142
-	///   95th: 442_275
-	///   75th: 414_217
+	///   99th: 470_733
+	///   95th: 465_082
+	///   75th: 452_536
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(417_412), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(450_240), 0);
 }
 
 #[cfg(test)]
diff --git a/polkadot/runtime/rococo/constants/src/weights/extrinsic_weights.rs b/polkadot/runtime/rococo/constants/src/weights/extrinsic_weights.rs
index adce840ebbc..000cee8a237 100644
--- a/polkadot/runtime/rococo/constants/src/weights/extrinsic_weights.rs
+++ b/polkadot/runtime/rococo/constants/src/weights/extrinsic_weights.rs
@@ -14,13 +14,13 @@
 // You should have received a copy of the GNU General Public License
 // along with Polkadot.  If not, see <http://www.gnu.org/licenses/>.
 
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26 (Y/M/D)
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29 (Y/M/D)
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development`
 //! WARMUPS: `10`, REPEAT: `100`
-//! WEIGHT-PATH: `runtime/rococo/constants/src/weights/`
+//! WEIGHT-PATH: `./polkadot/runtime/rococo/constants/src/weights/`
 //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0`
 
 // Executed Command:
@@ -28,12 +28,11 @@
 //   benchmark
 //   overhead
 //   --chain=rococo-dev
-//   --execution=wasm
 //   --wasm-execution=compiled
-//   --weight-path=runtime/rococo/constants/src/weights/
+//   --weight-path=./polkadot/runtime/rococo/constants/src/weights/
 //   --warmup=10
 //   --repeat=100
-//   --header=./file_header.txt
+//   --header=./polkadot/file_header.txt
 
 use sp_core::parameter_types;
 use sp_weights::{constants::WEIGHT_REF_TIME_PER_NANOS, Weight};
@@ -43,17 +42,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 97_574, 100_119
-	///   Average:  98_236
-	///   Median:   98_179
-	///   Std-Dev:  394.9
+	///   Min, Max: 92_961, 94_143
+	///   Average:  93_369
+	///   Median:   93_331
+	///   Std-Dev:  217.39
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 99_893
-	///   95th: 98_850
-	///   75th: 98_318
+	///   99th: 93_848
+	///   95th: 93_691
+	///   75th: 93_514
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(98_236), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(93_369), 0);
 }
 
 #[cfg(test)]
diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs
index 96e8c4e0979..ff54c777670 100644
--- a/polkadot/runtime/rococo/src/lib.rs
+++ b/polkadot/runtime/rococo/src/lib.rs
@@ -199,6 +199,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
 }
@@ -329,6 +330,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -591,7 +593,7 @@ where
 			// so the actual block number is `n`.
 			.saturating_sub(1);
 		let tip = 0;
-		let extra: SignedExtra = (
+		let tx_ext: TxExtension = (
 			frame_system::CheckNonZeroSender::<Runtime>::new(),
 			frame_system::CheckSpecVersion::<Runtime>::new(),
 			frame_system::CheckTxVersion::<Runtime>::new(),
@@ -603,16 +605,17 @@ where
 			frame_system::CheckNonce::<Runtime>::from(nonce),
 			frame_system::CheckWeight::<Runtime>::new(),
 			pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
-		);
-		let raw_payload = SignedPayload::new(call, extra)
+		)
+			.into();
+		let raw_payload = SignedPayload::new(call, tx_ext)
 			.map_err(|e| {
 				log::warn!("Unable to create signed payload: {:?}", e);
 			})
 			.ok()?;
 		let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
-		let (call, extra, _) = raw_payload.deconstruct();
+		let (call, tx_ext, _) = raw_payload.deconstruct();
 		let address = <Runtime as frame_system::Config>::Lookup::unlookup(account);
-		Some((call, (address, signature, extra)))
+		Some((call, (address, signature, tx_ext)))
 	}
 }
 
@@ -633,12 +636,32 @@ parameter_types! {
 	pub Prefix: &'static [u8] = b"Pay ROCs to the Rococo account:";
 }
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct ClaimsHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+use frame_support::dispatch::DispatchInfo;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl claims::BenchmarkHelperTrait<RuntimeCall, DispatchInfo> for ClaimsHelper {
+	fn default_call_and_info() -> (RuntimeCall, DispatchInfo) {
+		use frame_support::dispatch::GetDispatchInfo;
+		let call = RuntimeCall::Claims(claims::Call::attest {
+			statement: claims::StatementKind::Regular.to_text().to_vec(),
+		});
+		let info = call.get_dispatch_info();
+		(call, info)
+	}
+}
+
 impl claims::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type VestingSchedule = Vesting;
 	type Prefix = Prefix;
 	type MoveClaimOrigin = EnsureRoot<AccountId>;
 	type WeightInfo = weights::runtime_common_claims::WeightInfo<Runtime>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = ClaimsHelper;
 }
 
 parameter_types! {
@@ -1447,8 +1470,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// `BlockId` type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The `SignedExtension` to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -1461,7 +1484,7 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// All migrations that will run on the next runtime upgrade.
 ///
@@ -1675,7 +1698,7 @@ pub type Executive = frame_executive::Executive<
 	Migrations,
 >;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 
 parameter_types! {
 	// The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high)
@@ -1746,7 +1769,9 @@ mod benches {
 		[pallet_scheduler, Scheduler]
 		[pallet_sudo, Sudo]
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_treasury, Treasury]
 		[pallet_utility, Utility]
 		[pallet_vesting, Vesting]
@@ -2240,6 +2265,7 @@ sp_api::impl_runtime_apis! {
 			use frame_support::traits::StorageInfoTrait;
 
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use frame_benchmarking::baseline::Pallet as Baseline;
 
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
@@ -2260,6 +2286,7 @@ sp_api::impl_runtime_apis! {
 			use frame_support::traits::WhitelistedStorageKeys;
 			use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError};
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use frame_benchmarking::baseline::Pallet as Baseline;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 			use sp_storage::TrackedStorageKey;
diff --git a/polkadot/runtime/rococo/src/weights/frame_benchmarking_baseline.rs b/polkadot/runtime/rococo/src/weights/frame_benchmarking_baseline.rs
index dfba0cfc4aa..0f68a5c6fb3 100644
--- a/polkadot/runtime/rococo/src/weights/frame_benchmarking_baseline.rs
+++ b/polkadot/runtime/rococo/src/weights/frame_benchmarking_baseline.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `frame_benchmarking::baseline`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=frame_benchmarking::baseline
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/frame_benchmarking_baseline.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/frame_benchmarking_baseline.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -52,8 +55,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 157_000 picoseconds.
-		Weight::from_parts(175_233, 0)
+		// Minimum execution time: 172_000 picoseconds.
+		Weight::from_parts(199_481, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -61,8 +64,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 149_000 picoseconds.
-		Weight::from_parts(183_285, 0)
+		// Minimum execution time: 171_000 picoseconds.
+		Weight::from_parts(197_821, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -70,8 +73,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 158_000 picoseconds.
-		Weight::from_parts(184_720, 0)
+		// Minimum execution time: 172_000 picoseconds.
+		Weight::from_parts(200_942, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -79,16 +82,16 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 152_000 picoseconds.
-		Weight::from_parts(177_496, 0)
+		// Minimum execution time: 170_000 picoseconds.
+		Weight::from_parts(196_906, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 19_907_376_000 picoseconds.
-		Weight::from_parts(19_988_727_000, 0)
+		// Minimum execution time: 23_346_876_000 picoseconds.
+		Weight::from_parts(23_363_744_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 100]`.
@@ -96,10 +99,10 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 198_000 picoseconds.
-		Weight::from_parts(228_000, 0)
+		// Minimum execution time: 201_000 picoseconds.
+		Weight::from_parts(219_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 20_467
-			.saturating_add(Weight::from_parts(47_443_635, 0).saturating_mul(i.into()))
+			// Standard Error: 14_372
+			.saturating_add(Weight::from_parts(45_375_800, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/frame_system.rs b/polkadot/runtime/rococo/src/weights/frame_system.rs
index 2e49483dcc6..1742a761ca7 100644
--- a/polkadot/runtime/rococo/src/weights/frame_system.rs
+++ b/polkadot/runtime/rococo/src/weights/frame_system.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `frame_system`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=frame_system
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -52,91 +55,91 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_283_000 picoseconds.
-		Weight::from_parts(2_305_000, 0)
+		// Minimum execution time: 1_541_000 picoseconds.
+		Weight::from_parts(2_581_470, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(366, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(387, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_435_000 picoseconds.
-		Weight::from_parts(7_581_000, 0)
+		// Minimum execution time: 5_060_000 picoseconds.
+		Weight::from_parts(5_167_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_408, 0).saturating_mul(b.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_696, 0).saturating_mul(b.into()))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a686561707061676573` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
 	fn set_heap_pages() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 4_010_000 picoseconds.
-		Weight::from_parts(4_112_000, 0)
+		// Minimum execution time: 2_649_000 picoseconds.
+		Weight::from_parts(2_909_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a636f6465` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	fn set_code() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 80_405_511_000 picoseconds.
-		Weight::from_parts(83_066_478_000, 0)
+		// Minimum execution time: 88_417_540_000 picoseconds.
+		Weight::from_parts(91_809_291_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn set_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_210_000 picoseconds.
-		Weight::from_parts(2_247_000, 0)
+		// Minimum execution time: 1_538_000 picoseconds.
+		Weight::from_parts(1_589_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2_058
-			.saturating_add(Weight::from_parts(673_943, 0).saturating_mul(i.into()))
+			// Standard Error: 1_740
+			.saturating_add(Weight::from_parts(730_941, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn kill_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_125_000 picoseconds.
-		Weight::from_parts(2_154_000, 0)
+		// Minimum execution time: 1_567_000 picoseconds.
+		Weight::from_parts(1_750_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 816
-			.saturating_add(Weight::from_parts(491_194, 0).saturating_mul(i.into()))
+			// Standard Error: 835
+			.saturating_add(Weight::from_parts(543_218, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `p` is `[0, 1000]`.
 	fn kill_prefix(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `129 + p * (69 ±0)`
-		//  Estimated: `125 + p * (70 ±0)`
-		// Minimum execution time: 4_002_000 picoseconds.
-		Weight::from_parts(4_145_000, 0)
-			.saturating_add(Weight::from_parts(0, 125))
-			// Standard Error: 1_108
-			.saturating_add(Weight::from_parts(1_014_971, 0).saturating_mul(p.into()))
+		//  Measured:  `80 + p * (69 ±0)`
+		//  Estimated: `83 + p * (70 ±0)`
+		// Minimum execution time: 3_412_000 picoseconds.
+		Weight::from_parts(3_448_000, 0)
+			.saturating_add(Weight::from_parts(0, 83))
+			// Standard Error: 1_395
+			.saturating_add(Weight::from_parts(1_142_347, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -147,8 +150,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 33_027_000 picoseconds.
-		Weight::from_parts(33_027_000, 0)
+		// Minimum execution time: 9_178_000 picoseconds.
+		Weight::from_parts(9_780_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -162,8 +165,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `22`
 		//  Estimated: `1518`
-		// Minimum execution time: 118_101_992_000 picoseconds.
-		Weight::from_parts(118_101_992_000, 0)
+		// Minimum execution time: 94_523_563_000 picoseconds.
+		Weight::from_parts(96_983_131_000, 0)
 			.saturating_add(Weight::from_parts(0, 1518))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/polkadot/runtime/rococo/src/weights/frame_system_extensions.rs b/polkadot/runtime/rococo/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..40520591f53
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/frame_system_extensions.rs
@@ -0,0 +1,123 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=frame_system_extensions
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_262_000 picoseconds.
+		Weight::from_parts(3_497_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_416_000 picoseconds.
+		Weight::from_parts(5_690_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 471_000 picoseconds.
+		Weight::from_parts(552_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `101`
+		//  Estimated: `3593`
+		// Minimum execution time: 4_847_000 picoseconds.
+		Weight::from_parts(5_091_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 388_000 picoseconds.
+		Weight::from_parts(421_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 378_000 picoseconds.
+		Weight::from_parts(440_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1489`
+		// Minimum execution time: 3_402_000 picoseconds.
+		Weight::from_parts(3_627_000, 0)
+			.saturating_add(Weight::from_parts(0, 1489))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/mod.rs b/polkadot/runtime/rococo/src/weights/mod.rs
index 7328dca9393..128a3083a9c 100644
--- a/polkadot/runtime/rococo/src/weights/mod.rs
+++ b/polkadot/runtime/rococo/src/weights/mod.rs
@@ -16,6 +16,7 @@
 //! A list of the different weight modules for our runtime.
 
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_asset_rate;
 pub mod pallet_balances_balances;
 pub mod pallet_balances_nis_counterpart_balances;
@@ -36,6 +37,7 @@ pub mod pallet_scheduler;
 pub mod pallet_session;
 pub mod pallet_sudo;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_treasury;
 pub mod pallet_utility;
 pub mod pallet_vesting;
diff --git a/polkadot/runtime/rococo/src/weights/pallet_asset_rate.rs b/polkadot/runtime/rococo/src/weights/pallet_asset_rate.rs
index da2d1958cef..56b1e2cbc57 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_asset_rate.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_asset_rate.rs
@@ -16,25 +16,28 @@
 
 //! Autogenerated weights for `pallet_asset_rate`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-03, STEPS: `50`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `cob`, CPU: `<UNKNOWN>`
-//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// ./target/debug/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
 // --chain=rococo-dev
 // --steps=50
-// --repeat=2
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_asset_rate
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --output=./runtime/rococo/src/weights/
-// --header=./file_header.txt
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,39 +50,39 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_asset_rate`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_asset_rate::WeightInfo for WeightInfo<T> {
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(1237), added: 3712, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
-		//  Estimated: `4702`
-		// Minimum execution time: 143_000_000 picoseconds.
-		Weight::from_parts(155_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 4702))
+		//  Measured:  `142`
+		//  Estimated: `4703`
+		// Minimum execution time: 10_277_000 picoseconds.
+		Weight::from_parts(10_487_000, 0)
+			.saturating_add(Weight::from_parts(0, 4703))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(1237), added: 3712, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`)
 	fn update() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `110`
-		//  Estimated: `4702`
-		// Minimum execution time: 156_000_000 picoseconds.
-		Weight::from_parts(172_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 4702))
+		//  Measured:  `210`
+		//  Estimated: `4703`
+		// Minimum execution time: 10_917_000 picoseconds.
+		Weight::from_parts(11_249_000, 0)
+			.saturating_add(Weight::from_parts(0, 4703))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(1237), added: 3712, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`)
 	fn remove() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `110`
-		//  Estimated: `4702`
-		// Minimum execution time: 150_000_000 picoseconds.
-		Weight::from_parts(160_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 4702))
+		//  Measured:  `210`
+		//  Estimated: `4703`
+		// Minimum execution time: 11_332_000 picoseconds.
+		Weight::from_parts(11_866_000, 0)
+			.saturating_add(Weight::from_parts(0, 4703))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_balances_balances.rs b/polkadot/runtime/rococo/src/weights/pallet_balances_balances.rs
index 1b0ae1eeece..3fa54f2c369 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_balances_balances.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_balances_balances.rs
@@ -16,24 +16,26 @@
 
 //! Autogenerated weights for `pallet_balances`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_balances
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_balances
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -54,8 +56,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 44_127_000 picoseconds.
-		Weight::from_parts(45_099_000, 0)
+		// Minimum execution time: 45_336_000 picoseconds.
+		Weight::from_parts(46_189_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,8 +68,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 34_265_000 picoseconds.
-		Weight::from_parts(35_083_000, 0)
+		// Minimum execution time: 34_880_000 picoseconds.
+		Weight::from_parts(35_770_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -78,8 +80,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 12_189_000 picoseconds.
-		Weight::from_parts(12_655_000, 0)
+		// Minimum execution time: 12_904_000 picoseconds.
+		Weight::from_parts(13_260_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -90,8 +92,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 16_910_000 picoseconds.
-		Weight::from_parts(17_474_000, 0)
+		// Minimum execution time: 17_669_000 picoseconds.
+		Weight::from_parts(18_228_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -102,8 +104,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6196`
-		// Minimum execution time: 45_212_000 picoseconds.
-		Weight::from_parts(46_320_000, 0)
+		// Minimum execution time: 46_492_000 picoseconds.
+		Weight::from_parts(47_639_000, 0)
 			.saturating_add(Weight::from_parts(0, 6196))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -114,8 +116,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 42_500_000 picoseconds.
-		Weight::from_parts(43_991_000, 0)
+		// Minimum execution time: 44_342_000 picoseconds.
+		Weight::from_parts(45_144_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -126,8 +128,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 15_197_000 picoseconds.
-		Weight::from_parts(15_749_000, 0)
+		// Minimum execution time: 15_260_000 picoseconds.
+		Weight::from_parts(15_775_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -140,11 +142,11 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + u * (135 ±0)`
 		//  Estimated: `990 + u * (2603 ±0)`
-		// Minimum execution time: 14_414_000 picoseconds.
-		Weight::from_parts(14_685_000, 0)
+		// Minimum execution time: 14_703_000 picoseconds.
+		Weight::from_parts(14_950_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 7_918
-			.saturating_add(Weight::from_parts(13_095_420, 0).saturating_mul(u.into()))
+			// Standard Error: 7_665
+			.saturating_add(Weight::from_parts(13_335_803, 0).saturating_mul(u.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into())))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
@@ -153,8 +155,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_239_000 picoseconds.
-		Weight::from_parts(5_617_000, 0)
+		// Minimum execution time: 5_506_000 picoseconds.
+		Weight::from_parts(5_753_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs b/polkadot/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs
index 6cca9b9320a..1852ba6c2c4 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_balances_nis_counterpart_balances.rs
@@ -16,24 +16,26 @@
 
 //! Autogenerated weights for `pallet_balances`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_balances
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_balances
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -56,8 +58,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6164`
-		// Minimum execution time: 41_978_000 picoseconds.
-		Weight::from_parts(42_989_000, 0)
+		// Minimum execution time: 42_443_000 picoseconds.
+		Weight::from_parts(43_250_000, 0)
 			.saturating_add(Weight::from_parts(0, 6164))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -70,8 +72,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6164`
-		// Minimum execution time: 32_250_000 picoseconds.
-		Weight::from_parts(33_074_000, 0)
+		// Minimum execution time: 32_417_000 picoseconds.
+		Weight::from_parts(33_247_000, 0)
 			.saturating_add(Weight::from_parts(0, 6164))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -82,8 +84,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `3577`
-		// Minimum execution time: 9_906_000 picoseconds.
-		Weight::from_parts(10_397_000, 0)
+		// Minimum execution time: 10_091_000 picoseconds.
+		Weight::from_parts(10_426_000, 0)
 			.saturating_add(Weight::from_parts(0, 3577))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -96,8 +98,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `277`
 		//  Estimated: `3593`
-		// Minimum execution time: 16_298_000 picoseconds.
-		Weight::from_parts(17_115_000, 0)
+		// Minimum execution time: 16_546_000 picoseconds.
+		Weight::from_parts(17_259_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -110,8 +112,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `206`
 		//  Estimated: `6196`
-		// Minimum execution time: 43_283_000 picoseconds.
-		Weight::from_parts(44_033_000, 0)
+		// Minimum execution time: 44_322_000 picoseconds.
+		Weight::from_parts(45_319_000, 0)
 			.saturating_add(Weight::from_parts(0, 6196))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -124,8 +126,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6164`
-		// Minimum execution time: 40_564_000 picoseconds.
-		Weight::from_parts(41_597_000, 0)
+		// Minimum execution time: 40_852_000 picoseconds.
+		Weight::from_parts(42_205_000, 0)
 			.saturating_add(Weight::from_parts(0, 6164))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -138,8 +140,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `277`
 		//  Estimated: `3593`
-		// Minimum execution time: 15_018_000 picoseconds.
-		Weight::from_parts(15_532_000, 0)
+		// Minimum execution time: 15_050_000 picoseconds.
+		Weight::from_parts(15_813_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -154,11 +156,11 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + u * (256 ±0)`
 		//  Estimated: `990 + u * (2603 ±0)`
-		// Minimum execution time: 14_470_000 picoseconds.
-		Weight::from_parts(14_828_000, 0)
+		// Minimum execution time: 14_830_000 picoseconds.
+		Weight::from_parts(15_061_000, 0)
 			.saturating_add(Weight::from_parts(0, 990))
-			// Standard Error: 15_515
-			.saturating_add(Weight::from_parts(14_505_553, 0).saturating_mul(u.into()))
+			// Standard Error: 16_072
+			.saturating_add(Weight::from_parts(14_981_430, 0).saturating_mul(u.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(u.into())))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(u.into())))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
@@ -167,8 +169,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_277_000 picoseconds.
-		Weight::from_parts(5_628_000, 0)
+		// Minimum execution time: 5_344_000 picoseconds.
+		Weight::from_parts(5_735_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_bounties.rs b/polkadot/runtime/rococo/src/weights/pallet_bounties.rs
index 38d3645316f..8f8be5f2386 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_bounties.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_bounties.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_bounties`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_bounties
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,118 +50,181 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_bounties`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_bounties::WeightInfo for WeightInfo<T> {
-	/// Storage: Bounties BountyCount (r:1 w:1)
-	/// Proof: Bounties BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(16400), added: 18875, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:0 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyCount` (r:1 w:1)
+	/// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:0 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 16384]`.
 	fn propose_bounty(d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `210`
 		//  Estimated: `3593`
-		// Minimum execution time: 28_907_000 picoseconds.
-		Weight::from_parts(31_356_074, 0)
+		// Minimum execution time: 21_772_000 picoseconds.
+		Weight::from_parts(22_861_341, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(606, 0).saturating_mul(d.into()))
+			// Standard Error: 3
+			.saturating_add(Weight::from_parts(721, 0).saturating_mul(d.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn approve_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `302`
+		//  Estimated: `3642`
+		// Minimum execution time: 11_218_000 picoseconds.
+		Weight::from_parts(11_796_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `322`
+		//  Estimated: `3642`
+		// Minimum execution time: 10_959_000 picoseconds.
+		Weight::from_parts(11_658_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `498`
+		//  Estimated: `3642`
+		// Minimum execution time: 37_419_000 picoseconds.
+		Weight::from_parts(38_362_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `494`
+		//  Estimated: `3642`
+		// Minimum execution time: 27_328_000 picoseconds.
+		Weight::from_parts(27_661_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
 	fn award_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `400`
+		//  Estimated: `3642`
+		// Minimum execution time: 16_067_000 picoseconds.
+		Weight::from_parts(16_865_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn claim_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `764`
+		//  Estimated: `8799`
+		// Minimum execution time: 101_153_000 picoseconds.
+		Weight::from_parts(102_480_000, 0)
+			.saturating_add(Weight::from_parts(0, 8799))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(16400), added: 18875, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn close_bounty_proposed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `482`
+		//  Measured:  `444`
 		//  Estimated: `3642`
-		// Minimum execution time: 46_020_000 picoseconds.
-		Weight::from_parts(46_711_000, 0)
+		// Minimum execution time: 38_838_000 picoseconds.
+		Weight::from_parts(39_549_000, 0)
 			.saturating_add(Weight::from_parts(0, 3642))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn close_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `680`
+		//  Estimated: `6196`
+		// Minimum execution time: 68_592_000 picoseconds.
+		Weight::from_parts(70_727_000, 0)
+			.saturating_add(Weight::from_parts(0, 6196))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn extend_bounty_expiry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `358`
+		//  Estimated: `3642`
+		// Minimum execution time: 11_272_000 picoseconds.
+		Weight::from_parts(11_592_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:100 w:100)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:200 w:200)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[0, 100]`.
-	fn spend_funds(_b: u32, ) -> Weight {
+	fn spend_funds(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `1887`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(2_405_233, 0)
+		//  Measured:  `0 + b * (297 ±0)`
+		//  Estimated: `1887 + b * (5206 ±0)`
+		// Minimum execution time: 2_844_000 picoseconds.
+		Weight::from_parts(2_900_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
+			// Standard Error: 9_467
+			.saturating_add(Weight::from_parts(32_326_595, 0).saturating_mul(b.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into())))
+			.saturating_add(T::DbWeight::get().writes(1))
+			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(b.into())))
+			.saturating_add(Weight::from_parts(0, 5206).saturating_mul(b.into()))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_child_bounties.rs b/polkadot/runtime/rococo/src/weights/pallet_child_bounties.rs
index e8c798d45e7..47ae3a5c90d 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_child_bounties.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_child_bounties.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_child_bounties`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_child_bounties
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,69 +50,153 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_child_bounties`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_child_bounties::WeightInfo for WeightInfo<T> {
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 16384]`.
-	fn add_child_bounty(_d: u32, ) -> Weight {
+	fn add_child_bounty(d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `540`
+		//  Estimated: `6196`
+		// Minimum execution time: 57_964_000 picoseconds.
+		Weight::from_parts(59_559_565, 0)
+			.saturating_add(Weight::from_parts(0, 6196))
+			// Standard Error: 11
+			.saturating_add(Weight::from_parts(697, 0).saturating_mul(d.into()))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `594`
+		//  Estimated: `3642`
+		// Minimum execution time: 17_527_000 picoseconds.
+		Weight::from_parts(18_257_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `740`
+		//  Estimated: `3642`
+		// Minimum execution time: 29_354_000 picoseconds.
+		Weight::from_parts(30_629_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `740`
+		//  Estimated: `3642`
+		// Minimum execution time: 40_643_000 picoseconds.
+		Weight::from_parts(42_072_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	fn award_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `637`
+		//  Estimated: `3642`
+		// Minimum execution time: 18_616_000 picoseconds.
+		Weight::from_parts(19_316_000, 0)
+			.saturating_add(Weight::from_parts(0, 3642))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn claim_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `576`
+		//  Estimated: `8799`
+		// Minimum execution time: 96_376_000 picoseconds.
+		Weight::from_parts(98_476_000, 0)
+			.saturating_add(Weight::from_parts(0, 8799))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn close_child_bounty_added() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `840`
+		//  Estimated: `6196`
+		// Minimum execution time: 64_640_000 picoseconds.
+		Weight::from_parts(66_174_000, 0)
+			.saturating_add(Weight::from_parts(0, 6196))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`)
 	fn close_child_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `1027`
+		//  Estimated: `8799`
+		// Minimum execution time: 78_159_000 picoseconds.
+		Weight::from_parts(79_820_000, 0)
+			.saturating_add(Weight::from_parts(0, 8799))
+			.saturating_add(T::DbWeight::get().reads(7))
+			.saturating_add(T::DbWeight::get().writes(7))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_conviction_voting.rs b/polkadot/runtime/rococo/src/weights/pallet_conviction_voting.rs
index ba505737f1b..5d92c158df4 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_conviction_voting.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_conviction_voting.rs
@@ -16,17 +16,17 @@
 
 //! Autogenerated weights for `pallet_conviction_voting`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
 // benchmark
 // pallet
-// --chain=kusama-dev
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
 // --no-storage-info
@@ -36,8 +36,8 @@
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/kusama/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,144 +50,152 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_conviction_voting`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_conviction_voting::WeightInfo for WeightInfo<T> {
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(311), added: 2786, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(311), added: 2786, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn vote_new() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `13445`
+		//  Measured:  `13407`
 		//  Estimated: `42428`
-		// Minimum execution time: 151_077_000 picoseconds.
-		Weight::from_parts(165_283_000, 0)
+		// Minimum execution time: 128_378_000 picoseconds.
+		Weight::from_parts(131_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(311), added: 2786, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(311), added: 2786, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote_existing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `14166`
+		//  Measured:  `14128`
 		//  Estimated: `83866`
-		// Minimum execution time: 232_420_000 picoseconds.
-		Weight::from_parts(244_439_000, 0)
+		// Minimum execution time: 155_379_000 picoseconds.
+		Weight::from_parts(161_597_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(7))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().writes(7))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn remove_vote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `13918`
 		//  Estimated: `83866`
-		// Minimum execution time: 205_017_000 picoseconds.
-		Weight::from_parts(216_594_000, 0)
+		// Minimum execution time: 130_885_000 picoseconds.
+		Weight::from_parts(138_080_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	fn remove_other_vote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `13004`
+		//  Measured:  `13005`
 		//  Estimated: `30706`
-		// Minimum execution time: 84_226_000 picoseconds.
-		Weight::from_parts(91_255_000, 0)
+		// Minimum execution time: 71_743_000 picoseconds.
+		Weight::from_parts(75_170_000, 0)
 			.saturating_add(Weight::from_parts(0, 30706))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:512 w:512)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(311), added: 2786, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:512 w:512)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(311), added: 2786, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:50)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 512]`.
 	fn delegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `29640 + r * (365 ±0)`
+		//  Measured:  `29602 + r * (365 ±0)`
 		//  Estimated: `83866 + r * (3411 ±0)`
-		// Minimum execution time: 78_708_000 picoseconds.
-		Weight::from_parts(2_053_488_615, 0)
+		// Minimum execution time: 58_504_000 picoseconds.
+		Weight::from_parts(814_301_018, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
-			// Standard Error: 179_271
-			.saturating_add(Weight::from_parts(47_806_482, 0).saturating_mul(r.into()))
+			// Standard Error: 59_961
+			.saturating_add(Weight::from_parts(20_002_833, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().writes(45))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 3411).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:512 w:512)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(936), added: 3411, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:512 w:512)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:50)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 512]`.
 	fn undelegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `29555 + r * (365 ±0)`
 		//  Estimated: `83866 + r * (3411 ±0)`
-		// Minimum execution time: 45_232_000 picoseconds.
-		Weight::from_parts(2_045_021_014, 0)
+		// Minimum execution time: 34_970_000 picoseconds.
+		Weight::from_parts(771_155_804, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
-			// Standard Error: 185_130
-			.saturating_add(Weight::from_parts(47_896_011, 0).saturating_mul(r.into()))
+			// Standard Error: 57_795
+			.saturating_add(Weight::from_parts(19_781_645, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(43))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 3411).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(311), added: 2786, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(311), added: 2786, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	fn unlock() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `12218`
+		//  Measured:  `12180`
 		//  Estimated: `30706`
-		// Minimum execution time: 116_446_000 picoseconds.
-		Weight::from_parts(124_043_000, 0)
+		// Minimum execution time: 89_648_000 picoseconds.
+		Weight::from_parts(97_144_000, 0)
 			.saturating_add(Weight::from_parts(0, 30706))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_identity.rs b/polkadot/runtime/rococo/src/weights/pallet_identity.rs
index b334e21ea03..6df16351f2c 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_identity.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_identity.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_identity`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_identity
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,290 +50,291 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_identity`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn add_registrar(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 12_290_000 picoseconds.
-		Weight::from_parts(12_664_362, 0)
+		// Minimum execution time: 7_673_000 picoseconds.
+		Weight::from_parts(8_351_866, 0)
 			.saturating_add(Weight::from_parts(0, 2626))
-			// Standard Error: 1_347
-			.saturating_add(Weight::from_parts(88_179, 0).saturating_mul(r.into()))
+			// Standard Error: 1_302
+			.saturating_add(Weight::from_parts(79_198, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn set_identity(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `442 + r * (5 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 31_373_000 picoseconds.
-		Weight::from_parts(30_435_545, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 2_307
-			.saturating_add(Weight::from_parts(92_753, 0).saturating_mul(r.into()))
+		//  Measured:  `6978 + r * (5 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 111_646_000 picoseconds.
+		Weight::from_parts(113_254_991, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 6_611
+			.saturating_add(Weight::from_parts(162_119, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:100 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:100 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn set_subs_new(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
-		//  Estimated: `11003 + s * (2589 ±0)`
-		// Minimum execution time: 9_251_000 picoseconds.
-		Weight::from_parts(22_039_210, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 40_779
-			.saturating_add(Weight::from_parts(2_898_525, 0).saturating_mul(s.into()))
+		//  Estimated: `11037 + s * (2589 ±0)`
+		// Minimum execution time: 8_010_000 picoseconds.
+		Weight::from_parts(19_868_412, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 5_018
+			.saturating_add(Weight::from_parts(3_115_007, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 			.saturating_add(Weight::from_parts(0, 2589).saturating_mul(s.into()))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 100]`.
 	fn set_subs_old(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (32 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 9_329_000 picoseconds.
-		Weight::from_parts(24_055_061, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 3_428
-			.saturating_add(Weight::from_parts(1_130_604, 0).saturating_mul(p.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 8_111_000 picoseconds.
+		Weight::from_parts(19_482_392, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 3_156
+			.saturating_add(Weight::from_parts(1_305_890, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
-	fn clear_identity(_r: u32, s: u32, ) -> Weight {
+	fn clear_identity(r: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 53_365_000 picoseconds.
-		Weight::from_parts(35_391_422, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 1_353
-			.saturating_add(Weight::from_parts(1_074_019, 0).saturating_mul(s.into()))
+		//  Measured:  `7070 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 54_107_000 picoseconds.
+		Weight::from_parts(56_347_715, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 10_944
+			.saturating_add(Weight::from_parts(191_321, 0).saturating_mul(r.into()))
+			// Standard Error: 2_135
+			.saturating_add(Weight::from_parts(1_295_872, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn request_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `367 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 32_509_000 picoseconds.
-		Weight::from_parts(31_745_585, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 2_214
-			.saturating_add(Weight::from_parts(83_822, 0).saturating_mul(r.into()))
-
+		//  Measured:  `6968 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 75_780_000 picoseconds.
+		Weight::from_parts(76_869_773, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 5_456
+			.saturating_add(Weight::from_parts(135_316, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn cancel_request(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `398 + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 29_609_000 picoseconds.
-		Weight::from_parts(28_572_602, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 2_528
-			.saturating_add(Weight::from_parts(85_593, 0).saturating_mul(r.into()))
+		//  Measured:  `6999`
+		//  Estimated: `11037`
+		// Minimum execution time: 75_769_000 picoseconds.
+		Weight::from_parts(76_805_143, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 3_598
+			.saturating_add(Weight::from_parts(84_593, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fee(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_793_000 picoseconds.
-		Weight::from_parts(8_173_888, 0)
+		// Minimum execution time: 5_357_000 picoseconds.
+		Weight::from_parts(5_732_132, 0)
 			.saturating_add(Weight::from_parts(0, 2626))
-			// Standard Error: 1_569
-			.saturating_add(Weight::from_parts(72_367, 0).saturating_mul(r.into()))
+			// Standard Error: 927
+			.saturating_add(Weight::from_parts(70_832, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_account_id(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_708_000 picoseconds.
-		Weight::from_parts(8_091_149, 0)
+		// Minimum execution time: 5_484_000 picoseconds.
+		Weight::from_parts(5_892_704, 0)
 			.saturating_add(Weight::from_parts(0, 2626))
-			// Standard Error: 869
-			.saturating_add(Weight::from_parts(87_993, 0).saturating_mul(r.into()))
+			// Standard Error: 947
+			.saturating_add(Weight::from_parts(71_231, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fields(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_601_000 picoseconds.
-		Weight::from_parts(8_038_414, 0)
+		// Minimum execution time: 5_310_000 picoseconds.
+		Weight::from_parts(5_766_651, 0)
 			.saturating_add(Weight::from_parts(0, 2626))
-			// Standard Error: 1_041
-			.saturating_add(Weight::from_parts(82_588, 0).saturating_mul(r.into()))
+			// Standard Error: 916
+			.saturating_add(Weight::from_parts(74_776, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn provide_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `445 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 23_114_000 picoseconds.
-		Weight::from_parts(22_076_548, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 2_881
-			.saturating_add(Weight::from_parts(109_812, 0).saturating_mul(r.into()))
+		//  Measured:  `7046 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 98_200_000 picoseconds.
+		Weight::from_parts(100_105_482, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 6_152
+			.saturating_add(Weight::from_parts(58_906, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
 	fn kill_identity(r: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 70_007_000 picoseconds.
-		Weight::from_parts(50_186_495, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 6_533
-			.saturating_add(Weight::from_parts(15_486, 0).saturating_mul(r.into()))
-			// Standard Error: 1_275
-			.saturating_add(Weight::from_parts(1_085_117, 0).saturating_mul(s.into()))
+		//  Measured:  `7277 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 64_647_000 picoseconds.
+		Weight::from_parts(68_877_027, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 9_965
+			.saturating_add(Weight::from_parts(135_044, 0).saturating_mul(r.into()))
+			// Standard Error: 1_944
+			.saturating_add(Weight::from_parts(1_388_151, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn add_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `475 + s * (36 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 28_453_000 picoseconds.
-		Weight::from_parts(33_165_934, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 1_217
-			.saturating_add(Weight::from_parts(65_401, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 23_550_000 picoseconds.
+		Weight::from_parts(29_439_842, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 1_453
+			.saturating_add(Weight::from_parts(96_324, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn rename_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `591 + s * (3 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 12_846_000 picoseconds.
-		Weight::from_parts(14_710_284, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 496
-			.saturating_add(Weight::from_parts(19_539, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 13_704_000 picoseconds.
+		Weight::from_parts(15_241_441, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 498
+			.saturating_add(Weight::from_parts(40_973, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn remove_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `638 + s * (35 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 32_183_000 picoseconds.
-		Weight::from_parts(35_296_731, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 854
-			.saturating_add(Weight::from_parts(52_028, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 29_310_000 picoseconds.
+		Weight::from_parts(31_712_666, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 967
+			.saturating_add(Weight::from_parts(81_250, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn quit_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `704 + s * (37 ±0)`
 		//  Estimated: `6723`
-		// Minimum execution time: 24_941_000 picoseconds.
-		Weight::from_parts(27_433_059, 0)
+		// Minimum execution time: 22_906_000 picoseconds.
+		Weight::from_parts(24_638_729, 0)
 			.saturating_add(Weight::from_parts(0, 6723))
-			// Standard Error: 856
-			.saturating_add(Weight::from_parts(57_463, 0).saturating_mul(s.into()))
+			// Standard Error: 645
+			.saturating_add(Weight::from_parts(75_121, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -340,90 +344,93 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 13_873_000 picoseconds.
-		Weight::from_parts(13_873_000, 0)
+		// Minimum execution time: 6_056_000 picoseconds.
+		Weight::from_parts(6_349_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: `Identity::UsernameAuthorities` (r:0 w:1)
+	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn remove_username_authority() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 10_653_000 picoseconds.
-		Weight::from_parts(10_653_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
+		//  Measured:  `80`
+		//  Estimated: `3517`
+		// Minimum execution time: 9_003_000 picoseconds.
+		Weight::from_parts(9_276_000, 0)
+			.saturating_add(Weight::from_parts(0, 3517))
+			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::PendingUsernames` (r:1 w:0)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_username_for() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `80`
 		//  Estimated: `11037`
-		// Minimum execution time: 75_928_000 picoseconds.
-		Weight::from_parts(75_928_000, 0)
+		// Minimum execution time: 64_724_000 picoseconds.
+		Weight::from_parts(66_597_000, 0)
 			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:0 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn accept_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `115`
 		//  Estimated: `11037`
-		// Minimum execution time: 38_157_000 picoseconds.
-		Weight::from_parts(38_157_000, 0)
+		// Minimum execution time: 19_538_000 picoseconds.
+		Weight::from_parts(20_204_000, 0)
 			.saturating_add(Weight::from_parts(0, 11037))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn remove_expired_approval() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
-		//  Estimated: `3542`
-		// Minimum execution time: 46_821_000 picoseconds.
-		Weight::from_parts(46_821_000, 0)
-			.saturating_add(Weight::from_parts(0, 3542))
+		//  Measured:  `115`
+		//  Estimated: `3550`
+		// Minimum execution time: 16_000_000 picoseconds.
+		Weight::from_parts(19_354_000, 0)
+			.saturating_add(Weight::from_parts(0, 3550))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:0)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_primary_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `247`
+		//  Measured:  `257`
 		//  Estimated: `11037`
-		// Minimum execution time: 22_515_000 picoseconds.
-		Weight::from_parts(22_515_000, 0)
+		// Minimum execution time: 15_298_000 picoseconds.
+		Weight::from_parts(15_760_000, 0)
 			.saturating_add(Weight::from_parts(0, 11037))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:0)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn remove_dangling_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `126`
+		//  Measured:  `98`
 		//  Estimated: `11037`
-		// Minimum execution time: 15_997_000 picoseconds.
-		Weight::from_parts(15_997_000, 0)
+		// Minimum execution time: 10_829_000 picoseconds.
+		Weight::from_parts(11_113_000, 0)
 			.saturating_add(Weight::from_parts(0, 11037))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_indices.rs b/polkadot/runtime/rococo/src/weights/pallet_indices.rs
index 99ffd3210ed..434db97d4a7 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_indices.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_indices.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_indices`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_indices
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,66 +50,66 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_indices`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_indices::WeightInfo for WeightInfo<T> {
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn claim() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `142`
+		//  Measured:  `4`
 		//  Estimated: `3534`
-		// Minimum execution time: 25_107_000 picoseconds.
-		Weight::from_parts(25_655_000, 0)
+		// Minimum execution time: 18_092_000 picoseconds.
+		Weight::from_parts(18_533_000, 0)
 			.saturating_add(Weight::from_parts(0, 3534))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `341`
+		//  Measured:  `203`
 		//  Estimated: `3593`
-		// Minimum execution time: 36_208_000 picoseconds.
-		Weight::from_parts(36_521_000, 0)
+		// Minimum execution time: 31_616_000 picoseconds.
+		Weight::from_parts(32_556_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn free() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `238`
+		//  Measured:  `100`
 		//  Estimated: `3534`
-		// Minimum execution time: 25_915_000 picoseconds.
-		Weight::from_parts(26_220_000, 0)
+		// Minimum execution time: 19_593_000 picoseconds.
+		Weight::from_parts(20_100_000, 0)
 			.saturating_add(Weight::from_parts(0, 3534))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_transfer() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `341`
+		//  Measured:  `203`
 		//  Estimated: `3593`
-		// Minimum execution time: 28_232_000 picoseconds.
-		Weight::from_parts(28_845_000, 0)
+		// Minimum execution time: 21_429_000 picoseconds.
+		Weight::from_parts(22_146_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn freeze() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `238`
+		//  Measured:  `100`
 		//  Estimated: `3534`
-		// Minimum execution time: 27_282_000 picoseconds.
-		Weight::from_parts(27_754_000, 0)
+		// Minimum execution time: 20_425_000 picoseconds.
+		Weight::from_parts(21_023_000, 0)
 			.saturating_add(Weight::from_parts(0, 3534))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_message_queue.rs b/polkadot/runtime/rococo/src/weights/pallet_message_queue.rs
index e1e360d374a..6ebfcd060b6 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_message_queue.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_message_queue.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_message_queue`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_message_queue
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,150 +50,149 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_message_queue`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_message_queue::WeightInfo for WeightInfo<T> {
-	/// Storage: MessageQueue ServiceHead (r:1 w:0)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:0)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(6), added: 501, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
 	fn ready_ring_knit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `248`
+		//  Measured:  `281`
 		//  Estimated: `6050`
-		// Minimum execution time: 12_106_000 picoseconds.
-		Weight::from_parts(12_387_000, 0)
+		// Minimum execution time: 12_830_000 picoseconds.
+		Weight::from_parts(13_476_000, 0)
 			.saturating_add(Weight::from_parts(0, 6050))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(6), added: 501, mode: `MaxEncodedLen`)
 	fn ready_ring_unknit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `248`
+		//  Measured:  `281`
 		//  Estimated: `6050`
-		// Minimum execution time: 11_227_000 picoseconds.
-		Weight::from_parts(11_616_000, 0)
+		// Minimum execution time: 11_583_000 picoseconds.
+		Weight::from_parts(11_902_000, 0)
 			.saturating_add(Weight::from_parts(0, 6050))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
 	fn service_queue_base() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3520`
-		// Minimum execution time: 5_052_000 picoseconds.
-		Weight::from_parts(5_216_000, 0)
+		// Minimum execution time: 3_801_000 picoseconds.
+		Weight::from_parts(3_943_000, 0)
 			.saturating_add(Weight::from_parts(0, 3520))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
 	fn service_page_base_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `115`
 		//  Estimated: `36283`
-		// Minimum execution time: 6_522_000 picoseconds.
-		Weight::from_parts(6_794_000, 0)
+		// Minimum execution time: 5_517_000 picoseconds.
+		Weight::from_parts(5_861_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
 	fn service_page_base_no_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `115`
 		//  Estimated: `36283`
-		// Minimum execution time: 6_918_000 picoseconds.
-		Weight::from_parts(7_083_000, 0)
+		// Minimum execution time: 5_870_000 picoseconds.
+		Weight::from_parts(6_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `MessageQueue::BookStateFor` (r:0 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:0 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
 	fn service_page_item() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 28_445_000 picoseconds.
-		Weight::from_parts(28_659_000, 0)
+		// Minimum execution time: 80_681_000 picoseconds.
+		Weight::from_parts(81_818_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(6), added: 501, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:1 w:0)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(6), added: 501, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
 	fn bump_service_head() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `149`
+		//  Measured:  `220`
 		//  Estimated: `3520`
-		// Minimum execution time: 7_224_000 picoseconds.
-		Weight::from_parts(7_441_000, 0)
+		// Minimum execution time: 8_641_000 picoseconds.
+		Weight::from_parts(8_995_000, 0)
 			.saturating_add(Weight::from_parts(0, 3520))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
-	/// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
+	/// Storage: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
 	fn reap_page() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `33232`
+		//  Measured:  `32945`
 		//  Estimated: `36283`
-		// Minimum execution time: 45_211_000 picoseconds.
-		Weight::from_parts(45_505_000, 0)
+		// Minimum execution time: 38_473_000 picoseconds.
+		Weight::from_parts(39_831_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
-	/// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
+	/// Storage: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
 	fn execute_overweight_page_removed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `33232`
+		//  Measured:  `32945`
 		//  Estimated: `36283`
-		// Minimum execution time: 52_346_000 picoseconds.
-		Weight::from_parts(52_745_000, 0)
+		// Minimum execution time: 48_717_000 picoseconds.
+		Weight::from_parts(49_724_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
-	/// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
+	/// Storage: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
 	fn execute_overweight_page_updated() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `33232`
+		//  Measured:  `32945`
 		//  Estimated: `36283`
-		// Minimum execution time: 72_567_000 picoseconds.
-		Weight::from_parts(73_300_000, 0)
+		// Minimum execution time: 72_718_000 picoseconds.
+		Weight::from_parts(74_081_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_multisig.rs b/polkadot/runtime/rococo/src/weights/pallet_multisig.rs
index a4f33fe198c..f1b81759ece 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_multisig.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_multisig.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_multisig`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_multisig
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -52,110 +55,110 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 11_475_000 picoseconds.
-		Weight::from_parts(11_904_745, 0)
+		// Minimum execution time: 12_023_000 picoseconds.
+		Weight::from_parts(12_643_116, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(492, 0).saturating_mul(z.into()))
+			// Standard Error: 3
+			.saturating_add(Weight::from_parts(582, 0).saturating_mul(z.into()))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_create(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `193 + s * (2 ±0)`
+		//  Measured:  `229 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 38_857_000 picoseconds.
-		Weight::from_parts(33_611_791, 0)
+		// Minimum execution time: 39_339_000 picoseconds.
+		Weight::from_parts(27_243_033, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 400
-			.saturating_add(Weight::from_parts(59_263, 0).saturating_mul(s.into()))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(1_211, 0).saturating_mul(z.into()))
+			// Standard Error: 1_319
+			.saturating_add(Weight::from_parts(142_212, 0).saturating_mul(s.into()))
+			// Standard Error: 12
+			.saturating_add(Weight::from_parts(1_592, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[3, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_approve(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `211`
+		//  Measured:  `248`
 		//  Estimated: `6811`
-		// Minimum execution time: 25_715_000 picoseconds.
-		Weight::from_parts(20_607_294, 0)
+		// Minimum execution time: 27_647_000 picoseconds.
+		Weight::from_parts(15_828_725, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 285
-			.saturating_add(Weight::from_parts(58_225, 0).saturating_mul(s.into()))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_160, 0).saturating_mul(z.into()))
+			// Standard Error: 908
+			.saturating_add(Weight::from_parts(130_880, 0).saturating_mul(s.into()))
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(1_532, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_complete(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `317 + s * (33 ±0)`
+		//  Measured:  `354 + s * (33 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 43_751_000 picoseconds.
-		Weight::from_parts(37_398_513, 0)
+		// Minimum execution time: 46_971_000 picoseconds.
+		Weight::from_parts(32_150_393, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 426
-			.saturating_add(Weight::from_parts(70_904, 0).saturating_mul(s.into()))
-			// Standard Error: 4
-			.saturating_add(Weight::from_parts(1_235, 0).saturating_mul(z.into()))
+			// Standard Error: 1_129
+			.saturating_add(Weight::from_parts(154_796, 0).saturating_mul(s.into()))
+			// Standard Error: 11
+			.saturating_add(Weight::from_parts(1_603, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_create(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `193 + s * (2 ±0)`
+		//  Measured:  `229 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 31_278_000 picoseconds.
-		Weight::from_parts(32_075_573, 0)
+		// Minimum execution time: 24_947_000 picoseconds.
+		Weight::from_parts(26_497_183, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 452
-			.saturating_add(Weight::from_parts(62_018, 0).saturating_mul(s.into()))
+			// Standard Error: 1_615
+			.saturating_add(Weight::from_parts(147_071, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_approve(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `211`
+		//  Measured:  `248`
 		//  Estimated: `6811`
-		// Minimum execution time: 18_178_000 picoseconds.
-		Weight::from_parts(18_649_867, 0)
+		// Minimum execution time: 13_897_000 picoseconds.
+		Weight::from_parts(14_828_339, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 293
-			.saturating_add(Weight::from_parts(56_475, 0).saturating_mul(s.into()))
+			// Standard Error: 1_136
+			.saturating_add(Weight::from_parts(133_925, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn cancel_as_multi(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `383 + s * (1 ±0)`
+		//  Measured:  `420 + s * (1 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 32_265_000 picoseconds.
-		Weight::from_parts(32_984_014, 0)
+		// Minimum execution time: 28_984_000 picoseconds.
+		Weight::from_parts(29_853_232, 0)
 			.saturating_add(Weight::from_parts(0, 6811))
-			// Standard Error: 452
-			.saturating_add(Weight::from_parts(59_934, 0).saturating_mul(s.into()))
+			// Standard Error: 650
+			.saturating_add(Weight::from_parts(113_440, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_nis.rs b/polkadot/runtime/rococo/src/weights/pallet_nis.rs
index 35dad482129..38b41f3a8e2 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_nis.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_nis.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_nis`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_nis
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,202 +50,186 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_nis`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_nis::WeightInfo for WeightInfo<T> {
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 999]`.
 	fn place_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6209 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 44_704_000 picoseconds.
-		Weight::from_parts(44_933_886, 0)
+		// Minimum execution time: 39_592_000 picoseconds.
+		Weight::from_parts(38_234_037, 0)
 			.saturating_add(Weight::from_parts(0, 51487))
-			// Standard Error: 712
-			.saturating_add(Weight::from_parts(71_570, 0).saturating_mul(l.into()))
+			// Standard Error: 1_237
+			.saturating_add(Weight::from_parts(88_816, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn place_bid_max() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `54211`
 		//  Estimated: `51487`
-		// Minimum execution time: 126_544_000 picoseconds.
-		Weight::from_parts(128_271_000, 0)
+		// Minimum execution time: 134_847_000 picoseconds.
+		Weight::from_parts(139_510_000, 0)
 			.saturating_add(Weight::from_parts(0, 51487))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[1, 1000]`.
 	fn retract_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6209 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 47_640_000 picoseconds.
-		Weight::from_parts(42_214_261, 0)
+		// Minimum execution time: 43_330_000 picoseconds.
+		Weight::from_parts(35_097_881, 0)
 			.saturating_add(Weight::from_parts(0, 51487))
-			// Standard Error: 732
-			.saturating_add(Weight::from_parts(87_277, 0).saturating_mul(l.into()))
+			// Standard Error: 1_119
+			.saturating_add(Weight::from_parts(73_640, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Nis Summary (r:1 w:0)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:0)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:0)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn fund_deficit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `225`
 		//  Estimated: `3593`
-		// Minimum execution time: 38_031_000 picoseconds.
-		Weight::from_parts(38_441_000, 0)
+		// Minimum execution time: 29_989_000 picoseconds.
+		Weight::from_parts(30_865_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances TotalIssuance (r:1 w:1)
-	/// Proof: NisCounterpartBalances TotalIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances Account (r:1 w:1)
-	/// Proof: NisCounterpartBalances Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `NisCounterpartBalances::Account` (r:1 w:1)
+	/// Proof: `NisCounterpartBalances::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`)
 	fn communify() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `469`
+		//  Measured:  `387`
 		//  Estimated: `3593`
-		// Minimum execution time: 69_269_000 picoseconds.
-		Weight::from_parts(70_000_000, 0)
+		// Minimum execution time: 58_114_000 picoseconds.
+		Weight::from_parts(59_540_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			.saturating_add(T::DbWeight::get().reads(6))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:0)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances Account (r:1 w:1)
-	/// Proof: NisCounterpartBalances Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances TotalIssuance (r:1 w:1)
-	/// Proof: NisCounterpartBalances TotalIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `NisCounterpartBalances::Account` (r:1 w:1)
+	/// Proof: `NisCounterpartBalances::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
 	fn privatize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `659`
+		//  Measured:  `543`
 		//  Estimated: `3593`
-		// Minimum execution time: 85_763_000 picoseconds.
-		Weight::from_parts(86_707_000, 0)
+		// Minimum execution time: 75_780_000 picoseconds.
+		Weight::from_parts(77_097_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			.saturating_add(T::DbWeight::get().reads(7))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:0)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(67), added: 2542, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
 	fn thaw_private() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `387`
 		//  Estimated: `3593`
-		// Minimum execution time: 47_336_000 picoseconds.
-		Weight::from_parts(47_623_000, 0)
+		// Minimum execution time: 46_133_000 picoseconds.
+		Weight::from_parts(47_250_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances Account (r:1 w:1)
-	/// Proof: NisCounterpartBalances Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen)
-	/// Storage: NisCounterpartBalances TotalIssuance (r:1 w:1)
-	/// Proof: NisCounterpartBalances TotalIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:0)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `NisCounterpartBalances::Account` (r:1 w:1)
+	/// Proof: `NisCounterpartBalances::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn thaw_communal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `604`
+		//  Measured:  `488`
 		//  Estimated: `3593`
-		// Minimum execution time: 90_972_000 picoseconds.
-		Weight::from_parts(92_074_000, 0)
+		// Minimum execution time: 77_916_000 picoseconds.
+		Weight::from_parts(79_427_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			.saturating_add(T::DbWeight::get().reads(6))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:0)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn process_queues() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6658`
 		//  Estimated: `7487`
-		// Minimum execution time: 21_469_000 picoseconds.
-		Weight::from_parts(21_983_000, 0)
+		// Minimum execution time: 22_992_000 picoseconds.
+		Weight::from_parts(24_112_000, 0)
 			.saturating_add(Weight::from_parts(0, 7487))
-			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
 	fn process_queue() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `51487`
-		// Minimum execution time: 4_912_000 picoseconds.
-		Weight::from_parts(5_013_000, 0)
+		// Minimum execution time: 3_856_000 picoseconds.
+		Weight::from_parts(4_125_000, 0)
 			.saturating_add(Weight::from_parts(0, 51487))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Nis Receipts (r:0 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:0 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn process_bid() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_048_000 picoseconds.
-		Weight::from_parts(7_278_000, 0)
+		// Minimum execution time: 4_344_000 picoseconds.
+		Weight::from_parts(4_545_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_preimage.rs b/polkadot/runtime/rococo/src/weights/pallet_preimage.rs
index e051ebd5bba..7a2b77b84d8 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_preimage.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_preimage.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_preimage`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_preimage
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,184 +50,219 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_preimage`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
-	fn ensure_updated(n: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `193 + n * (91 ±0)`
-		//  Estimated: `3593 + n * (2566 ±0)`
-		// Minimum execution time: 2_000_000 picoseconds.
-		Weight::from_parts(2_000_000, 3593)
-			// Standard Error: 13_720
-			.saturating_add(Weight::from_parts(17_309_199, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(1_u64))
-			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
-			.saturating_add(T::DbWeight::get().writes(1_u64))
-			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into()))
-	}
-
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `215`
-		//  Estimated: `3556`
-		// Minimum execution time: 31_040_000 picoseconds.
-		Weight::from_parts(31_236_000, 0)
-			.saturating_add(Weight::from_parts(0, 3556))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_974, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(1))
-			.saturating_add(T::DbWeight::get().writes(2))
+		//  Measured:  `114`
+		//  Estimated: `3568`
+		// Minimum execution time: 40_363_000 picoseconds.
+		Weight::from_parts(41_052_000, 0)
+			.saturating_add(Weight::from_parts(0, 3568))
+			// Standard Error: 6
+			.saturating_add(Weight::from_parts(2_298, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_requested_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `178`
 		//  Estimated: `3556`
-		// Minimum execution time: 18_025_000 picoseconds.
-		Weight::from_parts(18_264_000, 0)
+		// Minimum execution time: 14_570_000 picoseconds.
+		Weight::from_parts(14_890_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_974, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(1))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(2_364, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_no_deposit_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `178`
 		//  Estimated: `3556`
-		// Minimum execution time: 17_122_000 picoseconds.
-		Weight::from_parts(17_332_000, 0)
+		// Minimum execution time: 13_933_000 picoseconds.
+		Weight::from_parts(14_290_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_968, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(1))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(2_349, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `361`
-		//  Estimated: `3556`
-		// Minimum execution time: 38_218_000 picoseconds.
-		Weight::from_parts(39_841_000, 0)
-			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
-			.saturating_add(T::DbWeight::get().writes(2))
+		//  Measured:  `315`
+		//  Estimated: `3568`
+		// Minimum execution time: 54_373_000 picoseconds.
+		Weight::from_parts(58_205_000, 0)
+			.saturating_add(Weight::from_parts(0, 3568))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `3556`
-		// Minimum execution time: 23_217_000 picoseconds.
-		Weight::from_parts(24_246_000, 0)
+		// Minimum execution time: 24_267_000 picoseconds.
+		Weight::from_parts(27_063_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `260`
 		//  Estimated: `3556`
-		// Minimum execution time: 21_032_000 picoseconds.
-		Weight::from_parts(21_844_000, 0)
+		// Minimum execution time: 25_569_000 picoseconds.
+		Weight::from_parts(27_895_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `3556`
-		// Minimum execution time: 13_954_000 picoseconds.
-		Weight::from_parts(14_501_000, 0)
+		// Minimum execution time: 14_182_000 picoseconds.
+		Weight::from_parts(16_098_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `114`
 		//  Estimated: `3556`
-		// Minimum execution time: 14_874_000 picoseconds.
-		Weight::from_parts(15_380_000, 0)
+		// Minimum execution time: 14_681_000 picoseconds.
+		Weight::from_parts(15_549_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_requested_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `178`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_199_000 picoseconds.
-		Weight::from_parts(10_493_000, 0)
+		// Minimum execution time: 9_577_000 picoseconds.
+		Weight::from_parts(10_146_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:0 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unrequest_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `3556`
-		// Minimum execution time: 21_772_000 picoseconds.
-		Weight::from_parts(22_554_000, 0)
+		// Minimum execution time: 21_003_000 picoseconds.
+		Weight::from_parts(23_549_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `178`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_115_000 picoseconds.
-		Weight::from_parts(10_452_000, 0)
+		// Minimum execution time: 9_507_000 picoseconds.
+		Weight::from_parts(10_013_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_multi_referenced_preimage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `178`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_031_000 picoseconds.
-		Weight::from_parts(10_310_000, 0)
+		// Minimum execution time: 9_293_000 picoseconds.
+		Weight::from_parts(10_055_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Preimage::StatusFor` (r:1023 w:1023)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1023 w:1023)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1023 w:1023)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(103), added: 2578, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:0 w:1023)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 1024]`.
+	fn ensure_updated(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0 + n * (227 ±0)`
+		//  Estimated: `990 + n * (2603 ±0)`
+		// Minimum execution time: 48_846_000 picoseconds.
+		Weight::from_parts(49_378_000, 0)
+			.saturating_add(Weight::from_parts(0, 990))
+			// Standard Error: 38_493
+			.saturating_add(Weight::from_parts(47_418_285, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into())))
+			.saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into())))
+			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(n.into()))
+	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_proxy.rs b/polkadot/runtime/rococo/src/weights/pallet_proxy.rs
index d9737a85c05..c9202593095 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_proxy.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_proxy.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_proxy`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_proxy
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,172 +50,176 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_proxy`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `227 + p * (37 ±0)`
+		//  Measured:  `89 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 15_956_000 picoseconds.
-		Weight::from_parts(16_300_358, 0)
+		// Minimum execution time: 11_267_000 picoseconds.
+		Weight::from_parts(11_798_007, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 652
-			.saturating_add(Weight::from_parts(30_807, 0).saturating_mul(p.into()))
+			// Standard Error: 858
+			.saturating_add(Weight::from_parts(43_735, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy_announced(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `554 + a * (68 ±0) + p * (37 ±0)`
+		//  Measured:  `416 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 37_584_000 picoseconds.
-		Weight::from_parts(37_858_207, 0)
+		// Minimum execution time: 32_791_000 picoseconds.
+		Weight::from_parts(32_776_904, 0)
 			.saturating_add(Weight::from_parts(0, 5698))
-			// Standard Error: 1_868
-			.saturating_add(Weight::from_parts(148_967, 0).saturating_mul(a.into()))
-			// Standard Error: 1_930
-			.saturating_add(Weight::from_parts(13_017, 0).saturating_mul(p.into()))
+			// Standard Error: 2_382
+			.saturating_add(Weight::from_parts(143_857, 0).saturating_mul(a.into()))
+			// Standard Error: 2_461
+			.saturating_add(Weight::from_parts(40_024, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
-	fn remove_announcement(a: u32, _p: u32, ) -> Weight {
+	fn remove_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `469 + a * (68 ±0)`
+		//  Measured:  `331 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 24_642_000 picoseconds.
-		Weight::from_parts(25_526_588, 0)
+		// Minimum execution time: 21_831_000 picoseconds.
+		Weight::from_parts(22_479_938, 0)
 			.saturating_add(Weight::from_parts(0, 5698))
-			// Standard Error: 1_138
-			.saturating_add(Weight::from_parts(131_157, 0).saturating_mul(a.into()))
+			// Standard Error: 1_738
+			.saturating_add(Weight::from_parts(146_532, 0).saturating_mul(a.into()))
+			// Standard Error: 1_796
+			.saturating_add(Weight::from_parts(7_499, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
-	fn reject_announcement(a: u32, _p: u32, ) -> Weight {
+	fn reject_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `469 + a * (68 ±0)`
+		//  Measured:  `331 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 24_377_000 picoseconds.
-		Weight::from_parts(25_464_033, 0)
+		// Minimum execution time: 21_776_000 picoseconds.
+		Weight::from_parts(22_762_843, 0)
 			.saturating_add(Weight::from_parts(0, 5698))
-			// Standard Error: 1_116
-			.saturating_add(Weight::from_parts(130_722, 0).saturating_mul(a.into()))
+			// Standard Error: 1_402
+			.saturating_add(Weight::from_parts(137_512, 0).saturating_mul(a.into()))
+			// Standard Error: 1_449
+			.saturating_add(Weight::from_parts(3_645, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn announce(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `486 + a * (68 ±0) + p * (37 ±0)`
+		//  Measured:  `348 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 34_202_000 picoseconds.
-		Weight::from_parts(34_610_079, 0)
+		// Minimum execution time: 29_108_000 picoseconds.
+		Weight::from_parts(29_508_910, 0)
 			.saturating_add(Weight::from_parts(0, 5698))
-			// Standard Error: 1_234
-			.saturating_add(Weight::from_parts(134_197, 0).saturating_mul(a.into()))
-			// Standard Error: 1_275
-			.saturating_add(Weight::from_parts(15_970, 0).saturating_mul(p.into()))
+			// Standard Error: 2_268
+			.saturating_add(Weight::from_parts(144_770, 0).saturating_mul(a.into()))
+			// Standard Error: 2_343
+			.saturating_add(Weight::from_parts(25_851, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn add_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `227 + p * (37 ±0)`
+		//  Measured:  `89 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_492_000 picoseconds.
-		Weight::from_parts(25_984_867, 0)
+		// Minimum execution time: 18_942_000 picoseconds.
+		Weight::from_parts(19_518_812, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 893
-			.saturating_add(Weight::from_parts(51_868, 0).saturating_mul(p.into()))
+			// Standard Error: 1_078
+			.saturating_add(Weight::from_parts(46_147, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `227 + p * (37 ±0)`
+		//  Measured:  `89 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_492_000 picoseconds.
-		Weight::from_parts(26_283_445, 0)
+		// Minimum execution time: 18_993_000 picoseconds.
+		Weight::from_parts(19_871_741, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 1_442
-			.saturating_add(Weight::from_parts(53_504, 0).saturating_mul(p.into()))
+			// Standard Error: 1_883
+			.saturating_add(Weight::from_parts(46_033, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxies(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `227 + p * (37 ±0)`
+		//  Measured:  `89 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 22_083_000 picoseconds.
-		Weight::from_parts(22_688_835, 0)
+		// Minimum execution time: 17_849_000 picoseconds.
+		Weight::from_parts(18_776_170, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 994
-			.saturating_add(Weight::from_parts(32_994, 0).saturating_mul(p.into()))
+			// Standard Error: 1_239
+			.saturating_add(Weight::from_parts(27_960, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn create_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `239`
+		//  Measured:  `101`
 		//  Estimated: `4706`
-		// Minimum execution time: 27_042_000 picoseconds.
-		Weight::from_parts(27_624_587, 0)
+		// Minimum execution time: 20_049_000 picoseconds.
+		Weight::from_parts(20_881_515, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 671
-			.saturating_add(Weight::from_parts(5_888, 0).saturating_mul(p.into()))
+			// Standard Error: 952
+			.saturating_add(Weight::from_parts(5_970, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 30]`.
 	fn kill_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `264 + p * (37 ±0)`
+		//  Measured:  `126 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 23_396_000 picoseconds.
-		Weight::from_parts(24_003_080, 0)
+		// Minimum execution time: 18_528_000 picoseconds.
+		Weight::from_parts(19_384_189, 0)
 			.saturating_add(Weight::from_parts(0, 4706))
-			// Standard Error: 684
-			.saturating_add(Weight::from_parts(29_878, 0).saturating_mul(p.into()))
+			// Standard Error: 1_106
+			.saturating_add(Weight::from_parts(35_698, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_ranked_collective.rs b/polkadot/runtime/rococo/src/weights/pallet_ranked_collective.rs
index ce9d5fcc0c7..fa2decb1671 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_ranked_collective.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_ranked_collective.rs
@@ -16,24 +16,26 @@
 
 //! Autogenerated weights for `pallet_ranked_collective`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_ranked_collective
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_ranked_collective
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -60,8 +62,8 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 13_480_000 picoseconds.
-		Weight::from_parts(13_786_000, 0)
+		// Minimum execution time: 13_428_000 picoseconds.
+		Weight::from_parts(14_019_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -79,11 +81,11 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `516 + r * (281 ±0)`
 		//  Estimated: `3519 + r * (2529 ±0)`
-		// Minimum execution time: 28_771_000 picoseconds.
-		Weight::from_parts(29_256_825, 0)
+		// Minimum execution time: 28_566_000 picoseconds.
+		Weight::from_parts(29_346_952, 0)
 			.saturating_add(Weight::from_parts(0, 3519))
-			// Standard Error: 21_594
-			.saturating_add(Weight::from_parts(14_649_527, 0).saturating_mul(r.into()))
+			// Standard Error: 21_068
+			.saturating_add(Weight::from_parts(14_471_237, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(6))
@@ -103,11 +105,11 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `214 + r * (17 ±0)`
 		//  Estimated: `3507`
-		// Minimum execution time: 16_117_000 picoseconds.
-		Weight::from_parts(16_978_453, 0)
+		// Minimum execution time: 16_161_000 picoseconds.
+		Weight::from_parts(16_981_334, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
-			// Standard Error: 4_511
-			.saturating_add(Weight::from_parts(324_261, 0).saturating_mul(r.into()))
+			// Standard Error: 4_596
+			.saturating_add(Weight::from_parts(313_386, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -124,11 +126,11 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `532 + r * (72 ±0)`
 		//  Estimated: `3519`
-		// Minimum execution time: 28_995_000 picoseconds.
-		Weight::from_parts(31_343_215, 0)
+		// Minimum execution time: 28_406_000 picoseconds.
+		Weight::from_parts(31_178_557, 0)
 			.saturating_add(Weight::from_parts(0, 3519))
-			// Standard Error: 16_438
-			.saturating_add(Weight::from_parts(637_462, 0).saturating_mul(r.into()))
+			// Standard Error: 17_737
+			.saturating_add(Weight::from_parts(627_757, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(6))
 	}
@@ -140,15 +142,17 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 	/// Proof: `FellowshipCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `603`
 		//  Estimated: `83866`
-		// Minimum execution time: 38_820_000 picoseconds.
-		Weight::from_parts(40_240_000, 0)
+		// Minimum execution time: 41_164_000 picoseconds.
+		Weight::from_parts(42_163_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -161,11 +165,11 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `400 + n * (50 ±0)`
 		//  Estimated: `4365 + n * (2540 ±0)`
-		// Minimum execution time: 12_972_000 picoseconds.
-		Weight::from_parts(15_829_333, 0)
+		// Minimum execution time: 13_183_000 picoseconds.
+		Weight::from_parts(15_604_064, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
-			// Standard Error: 1_754
-			.saturating_add(Weight::from_parts(1_116_520, 0).saturating_mul(n.into()))
+			// Standard Error: 2_018
+			.saturating_add(Weight::from_parts(1_101_088, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
@@ -183,8 +187,8 @@ impl<T: frame_system::Config> pallet_ranked_collective::WeightInfo for WeightInf
 		// Proof Size summary in bytes:
 		//  Measured:  `337`
 		//  Estimated: `6048`
-		// Minimum execution time: 44_601_000 picoseconds.
-		Weight::from_parts(45_714_000, 0)
+		// Minimum execution time: 43_603_000 picoseconds.
+		Weight::from_parts(44_809_000, 0)
 			.saturating_add(Weight::from_parts(0, 6048))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(10))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_recovery.rs b/polkadot/runtime/rococo/src/weights/pallet_recovery.rs
new file mode 100644
index 00000000000..ed79aa2b1f1
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/pallet_recovery.rs
@@ -0,0 +1,186 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_recovery`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_recovery
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_recovery`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_recovery::WeightInfo for WeightInfo<T> {
+	/// Storage: `Recovery::Proxy` (r:1 w:0)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	fn as_recovered() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `215`
+		//  Estimated: `3545`
+		// Minimum execution time: 7_899_000 picoseconds.
+		Weight::from_parts(8_205_000, 0)
+			.saturating_add(Weight::from_parts(0, 3545))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `Recovery::Proxy` (r:0 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	fn set_recovered() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 6_258_000 picoseconds.
+		Weight::from_parts(6_494_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 9]`.
+	fn create_recovery(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `109`
+		//  Estimated: `3816`
+		// Minimum execution time: 19_369_000 picoseconds.
+		Weight::from_parts(20_185_132, 0)
+			.saturating_add(Weight::from_parts(0, 3816))
+			// Standard Error: 4_275
+			.saturating_add(Weight::from_parts(78_024, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	fn initiate_recovery() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `206`
+		//  Estimated: `3854`
+		// Minimum execution time: 22_425_000 picoseconds.
+		Weight::from_parts(23_171_000, 0)
+			.saturating_add(Weight::from_parts(0, 3854))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 9]`.
+	fn vouch_recovery(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `294 + n * (64 ±0)`
+		//  Estimated: `3854`
+		// Minimum execution time: 17_308_000 picoseconds.
+		Weight::from_parts(18_118_782, 0)
+			.saturating_add(Weight::from_parts(0, 3854))
+			// Standard Error: 4_309
+			.saturating_add(Weight::from_parts(126_278, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 9]`.
+	fn claim_recovery(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `326 + n * (64 ±0)`
+		//  Estimated: `3854`
+		// Minimum execution time: 20_755_000 picoseconds.
+		Weight::from_parts(21_821_713, 0)
+			.saturating_add(Weight::from_parts(0, 3854))
+			// Standard Error: 4_550
+			.saturating_add(Weight::from_parts(101_916, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 9]`.
+	fn close_recovery(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `447 + n * (32 ±0)`
+		//  Estimated: `3854`
+		// Minimum execution time: 29_957_000 picoseconds.
+		Weight::from_parts(31_010_309, 0)
+			.saturating_add(Weight::from_parts(0, 3854))
+			// Standard Error: 5_913
+			.saturating_add(Weight::from_parts(110_070, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 9]`.
+	fn remove_recovery(n: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `204 + n * (32 ±0)`
+		//  Estimated: `3854`
+		// Minimum execution time: 24_430_000 picoseconds.
+		Weight::from_parts(24_462_856, 0)
+			.saturating_add(Weight::from_parts(0, 3854))
+			// Standard Error: 13_646
+			.saturating_add(Weight::from_parts(507_715, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	fn cancel_recovered() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `215`
+		//  Estimated: `3545`
+		// Minimum execution time: 9_686_000 picoseconds.
+		Weight::from_parts(10_071_000, 0)
+			.saturating_add(Weight::from_parts(0, 3545))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_referenda_fellowship_referenda.rs b/polkadot/runtime/rococo/src/weights/pallet_referenda_fellowship_referenda.rs
index 96f172230e1..6dfcea2b832 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_referenda_fellowship_referenda.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_referenda_fellowship_referenda.rs
@@ -16,27 +16,28 @@
 
 //! Autogenerated weights for `pallet_referenda`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-xerhrdyb-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: `Some(Wasm)`, WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_referenda
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
-// --pallet=pallet_referenda
-// --chain=rococo-dev
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -59,10 +60,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `327`
+		//  Measured:  `292`
 		//  Estimated: `42428`
-		// Minimum execution time: 29_909_000 picoseconds.
-		Weight::from_parts(30_645_000, 0)
+		// Minimum execution time: 24_053_000 picoseconds.
+		Weight::from_parts(25_121_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -71,15 +72,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `438`
+		//  Measured:  `403`
 		//  Estimated: `83866`
-		// Minimum execution time: 54_405_000 picoseconds.
-		Weight::from_parts(55_583_000, 0)
+		// Minimum execution time: 45_064_000 picoseconds.
+		Weight::from_parts(46_112_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(3))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -89,15 +92,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2076`
+		//  Measured:  `2041`
 		//  Estimated: `42428`
-		// Minimum execution time: 110_477_000 picoseconds.
-		Weight::from_parts(119_187_000, 0)
+		// Minimum execution time: 94_146_000 picoseconds.
+		Weight::from_parts(98_587_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -107,15 +112,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2117`
+		//  Measured:  `2082`
 		//  Estimated: `42428`
-		// Minimum execution time: 111_467_000 picoseconds.
-		Weight::from_parts(117_758_000, 0)
+		// Minimum execution time: 93_002_000 picoseconds.
+		Weight::from_parts(96_924_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -125,15 +132,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `774`
+		//  Measured:  `739`
 		//  Estimated: `83866`
-		// Minimum execution time: 191_135_000 picoseconds.
-		Weight::from_parts(210_535_000, 0)
+		// Minimum execution time: 160_918_000 picoseconds.
+		Weight::from_parts(175_603_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -143,24 +152,26 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `639`
+		//  Measured:  `604`
 		//  Estimated: `83866`
-		// Minimum execution time: 67_168_000 picoseconds.
-		Weight::from_parts(68_895_000, 0)
+		// Minimum execution time: 55_253_000 picoseconds.
+		Weight::from_parts(56_488_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	fn refund_decision_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `351`
+		//  Measured:  `317`
 		//  Estimated: `4365`
-		// Minimum execution time: 31_298_000 picoseconds.
-		Weight::from_parts(32_570_000, 0)
+		// Minimum execution time: 24_497_000 picoseconds.
+		Weight::from_parts(25_280_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -169,10 +180,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	fn refund_submission_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `201`
+		//  Measured:  `167`
 		//  Estimated: `4365`
-		// Minimum execution time: 15_674_000 picoseconds.
-		Weight::from_parts(16_190_000, 0)
+		// Minimum execution time: 11_374_000 picoseconds.
+		Weight::from_parts(11_817_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -181,15 +192,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `383`
+		//  Measured:  `348`
 		//  Estimated: `83866`
-		// Minimum execution time: 38_927_000 picoseconds.
-		Weight::from_parts(40_545_000, 0)
+		// Minimum execution time: 31_805_000 picoseconds.
+		Weight::from_parts(32_622_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(3))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
@@ -197,15 +210,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `FellowshipReferenda::MetadataOf` (r:1 w:0)
 	/// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn kill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `484`
+		//  Measured:  `449`
 		//  Estimated: `83866`
-		// Minimum execution time: 80_209_000 picoseconds.
-		Weight::from_parts(82_084_000, 0)
+		// Minimum execution time: 62_364_000 picoseconds.
+		Weight::from_parts(63_798_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `FellowshipReferenda::TrackQueue` (r:1 w:0)
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
@@ -213,10 +228,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_queue_empty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174`
+		//  Measured:  `140`
 		//  Estimated: `4277`
-		// Minimum execution time: 9_520_000 picoseconds.
-		Weight::from_parts(10_088_000, 0)
+		// Minimum execution time: 8_811_000 picoseconds.
+		Weight::from_parts(9_224_000, 0)
 			.saturating_add(Weight::from_parts(0, 4277))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -231,10 +246,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2376`
+		//  Measured:  `2341`
 		//  Estimated: `42428`
-		// Minimum execution time: 93_893_000 picoseconds.
-		Weight::from_parts(101_065_000, 0)
+		// Minimum execution time: 83_292_000 picoseconds.
+		Weight::from_parts(89_114_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -249,10 +264,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2362`
+		//  Measured:  `2327`
 		//  Estimated: `42428`
-		// Minimum execution time: 98_811_000 picoseconds.
-		Weight::from_parts(103_590_000, 0)
+		// Minimum execution time: 84_648_000 picoseconds.
+		Weight::from_parts(89_332_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -263,10 +278,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_insertion() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1841`
+		//  Measured:  `1807`
 		//  Estimated: `4365`
-		// Minimum execution time: 43_230_000 picoseconds.
-		Weight::from_parts(46_120_000, 0)
+		// Minimum execution time: 40_529_000 picoseconds.
+		Weight::from_parts(45_217_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -277,10 +292,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_slide() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1808`
+		//  Measured:  `1774`
 		//  Estimated: `4365`
-		// Minimum execution time: 43_092_000 picoseconds.
-		Weight::from_parts(46_018_000, 0)
+		// Minimum execution time: 40_894_000 picoseconds.
+		Weight::from_parts(45_726_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -293,10 +308,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	fn nudge_referendum_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1824`
+		//  Measured:  `1790`
 		//  Estimated: `4365`
-		// Minimum execution time: 49_697_000 picoseconds.
-		Weight::from_parts(53_795_000, 0)
+		// Minimum execution time: 48_187_000 picoseconds.
+		Weight::from_parts(52_655_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -309,10 +324,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::TrackQueue` (`max_values`: None, `max_size`: Some(812), added: 3287, mode: `MaxEncodedLen`)
 	fn nudge_referendum_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1865`
+		//  Measured:  `1831`
 		//  Estimated: `4365`
-		// Minimum execution time: 50_417_000 picoseconds.
-		Weight::from_parts(53_214_000, 0)
+		// Minimum execution time: 47_548_000 picoseconds.
+		Weight::from_parts(51_547_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -323,10 +338,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_no_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `335`
+		//  Measured:  `300`
 		//  Estimated: `42428`
-		// Minimum execution time: 25_688_000 picoseconds.
-		Weight::from_parts(26_575_000, 0)
+		// Minimum execution time: 20_959_000 picoseconds.
+		Weight::from_parts(21_837_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -337,10 +352,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `383`
+		//  Measured:  `348`
 		//  Estimated: `42428`
-		// Minimum execution time: 26_230_000 picoseconds.
-		Weight::from_parts(27_235_000, 0)
+		// Minimum execution time: 21_628_000 picoseconds.
+		Weight::from_parts(22_192_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -349,10 +364,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	fn nudge_referendum_timed_out() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `242`
+		//  Measured:  `208`
 		//  Estimated: `4365`
-		// Minimum execution time: 17_585_000 picoseconds.
-		Weight::from_parts(18_225_000, 0)
+		// Minimum execution time: 12_309_000 picoseconds.
+		Weight::from_parts(12_644_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -367,10 +382,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `584`
+		//  Measured:  `549`
 		//  Estimated: `42428`
-		// Minimum execution time: 38_243_000 picoseconds.
-		Weight::from_parts(39_959_000, 0)
+		// Minimum execution time: 31_871_000 picoseconds.
+		Weight::from_parts(33_123_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -385,10 +400,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `719`
+		//  Measured:  `684`
 		//  Estimated: `42428`
-		// Minimum execution time: 88_424_000 picoseconds.
-		Weight::from_parts(92_969_000, 0)
+		// Minimum execution time: 73_715_000 picoseconds.
+		Weight::from_parts(79_980_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -401,10 +416,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `770`
+		//  Measured:  `735`
 		//  Estimated: `42428`
-		// Minimum execution time: 138_207_000 picoseconds.
-		Weight::from_parts(151_726_000, 0)
+		// Minimum execution time: 128_564_000 picoseconds.
+		Weight::from_parts(138_536_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -417,10 +432,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_end_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `755`
+		//  Measured:  `720`
 		//  Estimated: `42428`
-		// Minimum execution time: 131_001_000 picoseconds.
-		Weight::from_parts(148_651_000, 0)
+		// Minimum execution time: 129_775_000 picoseconds.
+		Weight::from_parts(139_001_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -433,10 +448,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_not_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `770`
+		//  Measured:  `735`
 		//  Estimated: `42428`
-		// Minimum execution time: 109_612_000 picoseconds.
-		Weight::from_parts(143_626_000, 0)
+		// Minimum execution time: 128_233_000 picoseconds.
+		Weight::from_parts(135_796_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -449,10 +464,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `776`
+		//  Measured:  `741`
 		//  Estimated: `42428`
-		// Minimum execution time: 71_754_000 picoseconds.
-		Weight::from_parts(77_329_000, 0)
+		// Minimum execution time: 66_995_000 picoseconds.
+		Weight::from_parts(72_678_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -467,10 +482,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn nudge_referendum_approved() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `776`
+		//  Measured:  `741`
 		//  Estimated: `83866`
-		// Minimum execution time: 153_244_000 picoseconds.
-		Weight::from_parts(169_961_000, 0)
+		// Minimum execution time: 137_764_000 picoseconds.
+		Weight::from_parts(152_260_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -483,10 +498,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_rejected() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `772`
+		//  Measured:  `737`
 		//  Estimated: `42428`
-		// Minimum execution time: 137_997_000 picoseconds.
-		Weight::from_parts(157_862_000, 0)
+		// Minimum execution time: 119_992_000 picoseconds.
+		Weight::from_parts(134_805_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -495,16 +510,18 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(900), added: 3375, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `FellowshipReferenda::MetadataOf` (r:0 w:1)
 	/// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_some_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `458`
+		//  Measured:  `424`
 		//  Estimated: `4365`
-		// Minimum execution time: 21_794_000 picoseconds.
-		Weight::from_parts(22_341_000, 0)
+		// Minimum execution time: 20_927_000 picoseconds.
+		Weight::from_parts(21_802_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
-			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `FellowshipReferenda::ReferendumInfoFor` (r:1 w:0)
@@ -513,10 +530,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `FellowshipReferenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `319`
+		//  Measured:  `285`
 		//  Estimated: `4365`
-		// Minimum execution time: 18_458_000 picoseconds.
-		Weight::from_parts(19_097_000, 0)
+		// Minimum execution time: 14_253_000 picoseconds.
+		Weight::from_parts(15_031_000, 0)
 			.saturating_add(Weight::from_parts(0, 4365))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_referenda_referenda.rs b/polkadot/runtime/rococo/src/weights/pallet_referenda_referenda.rs
index b7cc5df28b9..c35925198f9 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_referenda_referenda.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_referenda_referenda.rs
@@ -16,27 +16,28 @@
 
 //! Autogenerated weights for `pallet_referenda`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-xerhrdyb-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: `Some(Wasm)`, WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_referenda
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
-// --pallet=pallet_referenda
-// --chain=rococo-dev
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -57,10 +58,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `324`
+		//  Measured:  `185`
 		//  Estimated: `42428`
-		// Minimum execution time: 39_852_000 picoseconds.
-		Weight::from_parts(41_610_000, 0)
+		// Minimum execution time: 28_612_000 picoseconds.
+		Weight::from_parts(30_060_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -69,15 +70,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `577`
+		//  Measured:  `438`
 		//  Estimated: `83866`
-		// Minimum execution time: 52_588_000 picoseconds.
-		Weight::from_parts(54_154_000, 0)
+		// Minimum execution time: 42_827_000 picoseconds.
+		Weight::from_parts(44_072_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(3))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
@@ -87,15 +90,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3334`
+		//  Measured:  `3225`
 		//  Estimated: `42428`
-		// Minimum execution time: 70_483_000 picoseconds.
-		Weight::from_parts(72_731_000, 0)
+		// Minimum execution time: 56_475_000 picoseconds.
+		Weight::from_parts(58_888_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
@@ -105,60 +110,62 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3354`
+		//  Measured:  `3245`
 		//  Estimated: `42428`
-		// Minimum execution time: 68_099_000 picoseconds.
-		Weight::from_parts(71_560_000, 0)
+		// Minimum execution time: 56_542_000 picoseconds.
+		Weight::from_parts(58_616_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
 	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `577`
+		//  Measured:  `438`
 		//  Estimated: `83866`
-		// Minimum execution time: 64_357_000 picoseconds.
-		Weight::from_parts(66_081_000, 0)
+		// Minimum execution time: 51_218_000 picoseconds.
+		Weight::from_parts(53_148_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
-			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
 	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `577`
+		//  Measured:  `438`
 		//  Estimated: `83866`
-		// Minimum execution time: 62_709_000 picoseconds.
-		Weight::from_parts(64_534_000, 0)
+		// Minimum execution time: 49_097_000 picoseconds.
+		Weight::from_parts(50_796_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
-			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	fn refund_decision_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
+		//  Measured:  `279`
 		//  Estimated: `4401`
-		// Minimum execution time: 31_296_000 picoseconds.
-		Weight::from_parts(32_221_000, 0)
+		// Minimum execution time: 23_720_000 picoseconds.
+		Weight::from_parts(24_327_000, 0)
 			.saturating_add(Weight::from_parts(0, 4401))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -167,10 +174,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	fn refund_submission_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `407`
+		//  Measured:  `269`
 		//  Estimated: `4401`
-		// Minimum execution time: 31_209_000 picoseconds.
-		Weight::from_parts(32_168_000, 0)
+		// Minimum execution time: 24_089_000 picoseconds.
+		Weight::from_parts(24_556_000, 0)
 			.saturating_add(Weight::from_parts(0, 4401))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -179,15 +186,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `485`
+		//  Measured:  `346`
 		//  Estimated: `83866`
-		// Minimum execution time: 38_887_000 picoseconds.
-		Weight::from_parts(40_193_000, 0)
+		// Minimum execution time: 29_022_000 picoseconds.
+		Weight::from_parts(29_590_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(3))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
@@ -195,15 +204,17 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::MetadataOf` (r:1 w:0)
 	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn kill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `726`
+		//  Measured:  `587`
 		//  Estimated: `83866`
-		// Minimum execution time: 106_054_000 picoseconds.
-		Weight::from_parts(108_318_000, 0)
+		// Minimum execution time: 81_920_000 picoseconds.
+		Weight::from_parts(84_492_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
 			.saturating_add(T::DbWeight::get().reads(4))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::TrackQueue` (r:1 w:0)
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
@@ -211,10 +222,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_queue_empty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `240`
+		//  Measured:  `102`
 		//  Estimated: `5477`
-		// Minimum execution time: 9_263_000 picoseconds.
-		Weight::from_parts(9_763_000, 0)
+		// Minimum execution time: 8_134_000 picoseconds.
+		Weight::from_parts(8_574_000, 0)
 			.saturating_add(Weight::from_parts(0, 5477))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -223,36 +234,32 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3254`
+		//  Measured:  `3115`
 		//  Estimated: `42428`
-		// Minimum execution time: 50_080_000 picoseconds.
-		Weight::from_parts(51_858_000, 0)
+		// Minimum execution time: 39_932_000 picoseconds.
+		Weight::from_parts(42_086_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3254`
+		//  Measured:  `3115`
 		//  Estimated: `42428`
-		// Minimum execution time: 53_889_000 picoseconds.
-		Weight::from_parts(55_959_000, 0)
+		// Minimum execution time: 42_727_000 picoseconds.
+		Weight::from_parts(44_280_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
@@ -261,10 +268,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_insertion() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3077`
+		//  Measured:  `2939`
 		//  Estimated: `5477`
-		// Minimum execution time: 23_266_000 picoseconds.
-		Weight::from_parts(24_624_000, 0)
+		// Minimum execution time: 20_918_000 picoseconds.
+		Weight::from_parts(22_180_000, 0)
 			.saturating_add(Weight::from_parts(0, 5477))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -275,10 +282,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_slide() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3077`
+		//  Measured:  `2939`
 		//  Estimated: `5477`
-		// Minimum execution time: 22_846_000 picoseconds.
-		Weight::from_parts(24_793_000, 0)
+		// Minimum execution time: 20_943_000 picoseconds.
+		Weight::from_parts(21_932_000, 0)
 			.saturating_add(Weight::from_parts(0, 5477))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -291,10 +298,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3081`
+		//  Measured:  `2943`
 		//  Estimated: `5477`
-		// Minimum execution time: 28_284_000 picoseconds.
-		Weight::from_parts(29_940_000, 0)
+		// Minimum execution time: 25_197_000 picoseconds.
+		Weight::from_parts(26_083_000, 0)
 			.saturating_add(Weight::from_parts(0, 5477))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -307,10 +314,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3101`
+		//  Measured:  `2963`
 		//  Estimated: `5477`
-		// Minimum execution time: 28_133_000 picoseconds.
-		Weight::from_parts(29_638_000, 0)
+		// Minimum execution time: 24_969_000 picoseconds.
+		Weight::from_parts(26_096_000, 0)
 			.saturating_add(Weight::from_parts(0, 5477))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -321,10 +328,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_no_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `437`
+		//  Measured:  `298`
 		//  Estimated: `42428`
-		// Minimum execution time: 25_710_000 picoseconds.
-		Weight::from_parts(26_500_000, 0)
+		// Minimum execution time: 18_050_000 picoseconds.
+		Weight::from_parts(18_790_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -335,10 +342,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `485`
+		//  Measured:  `346`
 		//  Estimated: `42428`
-		// Minimum execution time: 25_935_000 picoseconds.
-		Weight::from_parts(26_803_000, 0)
+		// Minimum execution time: 18_357_000 picoseconds.
+		Weight::from_parts(18_957_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -347,10 +354,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	fn nudge_referendum_timed_out() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `344`
+		//  Measured:  `206`
 		//  Estimated: `4401`
-		// Minimum execution time: 17_390_000 picoseconds.
-		Weight::from_parts(18_042_000, 0)
+		// Minimum execution time: 11_479_000 picoseconds.
+		Weight::from_parts(11_968_000, 0)
 			.saturating_add(Weight::from_parts(0, 4401))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -359,150 +366,136 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
 	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `485`
+		//  Measured:  `346`
 		//  Estimated: `42428`
-		// Minimum execution time: 35_141_000 picoseconds.
-		Weight::from_parts(36_318_000, 0)
+		// Minimum execution time: 24_471_000 picoseconds.
+		Weight::from_parts(25_440_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
 	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `485`
+		//  Measured:  `346`
 		//  Estimated: `42428`
-		// Minimum execution time: 37_815_000 picoseconds.
-		Weight::from_parts(39_243_000, 0)
+		// Minimum execution time: 26_580_000 picoseconds.
+		Weight::from_parts(27_570_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `538`
+		//  Measured:  `399`
 		//  Estimated: `42428`
-		// Minimum execution time: 30_779_000 picoseconds.
-		Weight::from_parts(31_845_000, 0)
+		// Minimum execution time: 24_331_000 picoseconds.
+		Weight::from_parts(25_291_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_end_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `521`
+		//  Measured:  `382`
 		//  Estimated: `42428`
-		// Minimum execution time: 31_908_000 picoseconds.
-		Weight::from_parts(33_253_000, 0)
+		// Minimum execution time: 24_768_000 picoseconds.
+		Weight::from_parts(25_746_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_not_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `538`
+		//  Measured:  `399`
 		//  Estimated: `42428`
-		// Minimum execution time: 28_951_000 picoseconds.
-		Weight::from_parts(30_004_000, 0)
+		// Minimum execution time: 23_171_000 picoseconds.
+		Weight::from_parts(24_161_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `542`
+		//  Measured:  `403`
 		//  Estimated: `42428`
-		// Minimum execution time: 27_750_000 picoseconds.
-		Weight::from_parts(28_588_000, 0)
+		// Minimum execution time: 22_263_000 picoseconds.
+		Weight::from_parts(23_062_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:2 w:2)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Lookup` (r:1 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn nudge_referendum_approved() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `542`
+		//  Measured:  `403`
 		//  Estimated: `83866`
-		// Minimum execution time: 43_950_000 picoseconds.
-		Weight::from_parts(46_164_000, 0)
+		// Minimum execution time: 33_710_000 picoseconds.
+		Weight::from_parts(34_871_000, 0)
 			.saturating_add(Weight::from_parts(0, 83866))
-			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
-	/// Storage: `Balances::InactiveIssuance` (r:1 w:0)
-	/// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	fn nudge_referendum_rejected() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `538`
+		//  Measured:  `399`
 		//  Estimated: `42428`
-		// Minimum execution time: 31_050_000 picoseconds.
-		Weight::from_parts(32_169_000, 0)
+		// Minimum execution time: 24_260_000 picoseconds.
+		Weight::from_parts(25_104_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
 	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Referenda::MetadataOf` (r:0 w:1)
 	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_some_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `560`
+		//  Measured:  `422`
 		//  Estimated: `4401`
-		// Minimum execution time: 21_193_000 picoseconds.
-		Weight::from_parts(22_116_000, 0)
+		// Minimum execution time: 19_821_000 picoseconds.
+		Weight::from_parts(20_641_000, 0)
 			.saturating_add(Weight::from_parts(0, 4401))
-			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
@@ -511,10 +504,10 @@ impl<T: frame_system::Config> pallet_referenda::WeightInfo for WeightInfo<T> {
 	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `421`
+		//  Measured:  `283`
 		//  Estimated: `4401`
-		// Minimum execution time: 18_065_000 picoseconds.
-		Weight::from_parts(18_781_000, 0)
+		// Minimum execution time: 13_411_000 picoseconds.
+		Weight::from_parts(14_070_000, 0)
 			.saturating_add(Weight::from_parts(0, 4401))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_scheduler.rs b/polkadot/runtime/rococo/src/weights/pallet_scheduler.rs
index 0f36dbd384d..5f6b41d2b54 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_scheduler.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_scheduler.rs
@@ -16,24 +16,26 @@
 
 //! Autogenerated weights for `pallet_scheduler`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_scheduler
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_scheduler
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -54,8 +56,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `68`
 		//  Estimated: `1489`
-		// Minimum execution time: 2_869_000 picoseconds.
-		Weight::from_parts(3_109_000, 0)
+		// Minimum execution time: 3_114_000 picoseconds.
+		Weight::from_parts(3_245_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -67,11 +69,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `115 + s * (177 ±0)`
 		//  Estimated: `42428`
-		// Minimum execution time: 3_326_000 picoseconds.
-		Weight::from_parts(5_818_563, 0)
+		// Minimum execution time: 3_430_000 picoseconds.
+		Weight::from_parts(6_250_920, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 1_261
-			.saturating_add(Weight::from_parts(336_446, 0).saturating_mul(s.into()))
+			// Standard Error: 1_350
+			.saturating_add(Weight::from_parts(333_245, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -79,8 +81,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_007_000 picoseconds.
-		Weight::from_parts(3_197_000, 0)
+		// Minimum execution time: 3_166_000 picoseconds.
+		Weight::from_parts(3_295_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
@@ -94,11 +96,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `251 + s * (1 ±0)`
 		//  Estimated: `3716 + s * (1 ±0)`
-		// Minimum execution time: 16_590_000 picoseconds.
-		Weight::from_parts(16_869_000, 0)
+		// Minimum execution time: 17_072_000 picoseconds.
+		Weight::from_parts(17_393_000, 0)
 			.saturating_add(Weight::from_parts(0, 3716))
-			// Standard Error: 9
-			.saturating_add(Weight::from_parts(1_308, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_204, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into()))
@@ -109,8 +111,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_320_000 picoseconds.
-		Weight::from_parts(4_594_000, 0)
+		// Minimum execution time: 4_566_000 picoseconds.
+		Weight::from_parts(4_775_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -118,24 +120,24 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_956_000 picoseconds.
-		Weight::from_parts(3_216_000, 0)
+		// Minimum execution time: 3_180_000 picoseconds.
+		Weight::from_parts(3_339_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_824_000 picoseconds.
-		Weight::from_parts(1_929_000, 0)
+		// Minimum execution time: 1_656_000 picoseconds.
+		Weight::from_parts(1_829_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_749_000 picoseconds.
-		Weight::from_parts(1_916_000, 0)
+		// Minimum execution time: 1_628_000 picoseconds.
+		Weight::from_parts(1_840_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
@@ -145,16 +147,18 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `115 + s * (177 ±0)`
 		//  Estimated: `42428`
-		// Minimum execution time: 9_086_000 picoseconds.
-		Weight::from_parts(11_733_696, 0)
+		// Minimum execution time: 9_523_000 picoseconds.
+		Weight::from_parts(12_482_434, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 1_362
-			.saturating_add(Weight::from_parts(375_266, 0).saturating_mul(s.into()))
+			// Standard Error: 1_663
+			.saturating_add(Weight::from_parts(370_122, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Lookup` (r:0 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 50]`.
@@ -162,13 +166,13 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `115 + s * (177 ±0)`
 		//  Estimated: `42428`
-		// Minimum execution time: 12_716_000 picoseconds.
-		Weight::from_parts(12_529_180, 0)
+		// Minimum execution time: 14_649_000 picoseconds.
+		Weight::from_parts(14_705_132, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 867
-			.saturating_add(Weight::from_parts(548_188, 0).saturating_mul(s.into()))
+			// Standard Error: 1_126
+			.saturating_add(Weight::from_parts(547_438, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
-			.saturating_add(T::DbWeight::get().writes(2))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
 	/// Storage: `Scheduler::Lookup` (r:1 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
@@ -179,11 +183,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `292 + s * (185 ±0)`
 		//  Estimated: `42428`
-		// Minimum execution time: 12_053_000 picoseconds.
-		Weight::from_parts(15_358_056, 0)
+		// Minimum execution time: 12_335_000 picoseconds.
+		Weight::from_parts(16_144_217, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 3_176
-			.saturating_add(Weight::from_parts(421_589, 0).saturating_mul(s.into()))
+			// Standard Error: 3_533
+			.saturating_add(Weight::from_parts(413_823, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -191,49 +195,48 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 50]`.
 	fn cancel_named(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `318 + s * (185 ±0)`
 		//  Estimated: `42428`
-		// Minimum execution time: 14_803_000 picoseconds.
-		Weight::from_parts(15_805_714, 0)
+		// Minimum execution time: 16_906_000 picoseconds.
+		Weight::from_parts(17_846_662, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 2_597
-			.saturating_add(Weight::from_parts(611_053, 0).saturating_mul(s.into()))
+			// Standard Error: 2_687
+			.saturating_add(Weight::from_parts(613_356, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(2))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: `Scheduler::Retries` (r:1 w:2)
-	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
-	/// Storage: `Scheduler::Lookup` (r:0 w:1)
-	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 50]`.
 	fn schedule_retry(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `196`
+		//  Measured:  `155`
 		//  Estimated: `42428`
-		// Minimum execution time: 13_156_000 picoseconds.
-		Weight::from_parts(13_801_287, 0)
+		// Minimum execution time: 8_988_000 picoseconds.
+		Weight::from_parts(9_527_838, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
-			// Standard Error: 568
-			.saturating_add(Weight::from_parts(35_441, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(4))
+			// Standard Error: 523
+			.saturating_add(Weight::from_parts(25_453, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:0)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Retries` (r:0 w:1)
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// The range of component `s` is `[1, 50]`.
 	fn set_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `115 + s * (177 ±0)`
+		//  Measured:  `8965`
 		//  Estimated: `42428`
-		// Minimum execution time: 7_912_000 picoseconds.
-		Weight::from_parts(8_081_460, 0)
+		// Minimum execution time: 23_337_000 picoseconds.
+		Weight::from_parts(24_255_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -244,13 +247,12 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Retries` (r:0 w:1)
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// The range of component `s` is `[1, 50]`.
 	fn set_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `324 + s * (185 ±0)`
+		//  Measured:  `9643`
 		//  Estimated: `42428`
-		// Minimum execution time: 10_673_000 picoseconds.
-		Weight::from_parts(12_212_185, 0)
+		// Minimum execution time: 30_704_000 picoseconds.
+		Weight::from_parts(31_646_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -259,13 +261,12 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Retries` (r:0 w:1)
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// The range of component `s` is `[1, 50]`.
 	fn cancel_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `115 + s * (177 ±0)`
+		//  Measured:  `8977`
 		//  Estimated: `42428`
-		// Minimum execution time: 7_912_000 picoseconds.
-		Weight::from_parts(8_081_460, 0)
+		// Minimum execution time: 22_279_000 picoseconds.
+		Weight::from_parts(23_106_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -276,13 +277,12 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Retries` (r:0 w:1)
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// The range of component `s` is `[1, 50]`.
 	fn cancel_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `324 + s * (185 ±0)`
+		//  Measured:  `9655`
 		//  Estimated: `42428`
-		// Minimum execution time: 10_673_000 picoseconds.
-		Weight::from_parts(12_212_185, 0)
+		// Minimum execution time: 29_649_000 picoseconds.
+		Weight::from_parts(30_472_000, 0)
 			.saturating_add(Weight::from_parts(0, 42428))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_sudo.rs b/polkadot/runtime/rococo/src/weights/pallet_sudo.rs
index 694174954fc..ecc31dc3fa9 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_sudo.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_sudo.rs
@@ -16,24 +16,26 @@
 
 //! Autogenerated weights for `pallet_sudo`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_sudo
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_sudo
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -54,8 +56,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `132`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_432_000 picoseconds.
-		Weight::from_parts(8_757_000, 0)
+		// Minimum execution time: 8_336_000 picoseconds.
+		Weight::from_parts(8_569_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,8 +68,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `132`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_167_000 picoseconds.
-		Weight::from_parts(9_397_000, 0)
+		// Minimum execution time: 8_858_000 picoseconds.
+		Weight::from_parts(9_238_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -77,8 +79,8 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `132`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_133_000 picoseconds.
-		Weight::from_parts(9_573_000, 0)
+		// Minimum execution time: 8_921_000 picoseconds.
+		Weight::from_parts(9_324_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -88,10 +90,21 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `132`
 		//  Estimated: `1517`
-		// Minimum execution time: 7_374_000 picoseconds.
-		Weight::from_parts(7_702_000, 0)
+		// Minimum execution time: 7_398_000 picoseconds.
+		Weight::from_parts(7_869_000, 0)
 			.saturating_add(Weight::from_parts(0, 1517))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Sudo::Key` (r:1 w:0)
+	/// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	fn check_only_sudo_account() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `132`
+		//  Estimated: `1517`
+		// Minimum execution time: 3_146_000 picoseconds.
+		Weight::from_parts(3_314_000, 0)
+			.saturating_add(Weight::from_parts(0, 1517))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_timestamp.rs b/polkadot/runtime/rococo/src/weights/pallet_timestamp.rs
index 1bb2e227ab7..7d79621b9e6 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_timestamp.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_timestamp.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_timestamp`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_timestamp
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,26 +50,26 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_timestamp`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
-	/// Storage: Timestamp Now (r:1 w:1)
-	/// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe CurrentSlot (r:1 w:0)
-	/// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Timestamp::Now` (r:1 w:1)
+	/// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::CurrentSlot` (r:1 w:0)
+	/// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `311`
+		//  Measured:  `137`
 		//  Estimated: `1493`
-		// Minimum execution time: 10_103_000 picoseconds.
-		Weight::from_parts(10_597_000, 0)
+		// Minimum execution time: 5_596_000 picoseconds.
+		Weight::from_parts(5_823_000, 0)
 			.saturating_add(Weight::from_parts(0, 1493))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `94`
+		//  Measured:  `57`
 		//  Estimated: `0`
-		// Minimum execution time: 4_718_000 picoseconds.
-		Weight::from_parts(4_839_000, 0)
+		// Minimum execution time: 2_777_000 picoseconds.
+		Weight::from_parts(2_900_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_transaction_payment.rs b/polkadot/runtime/rococo/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..44dfab289fb
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,68 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_transaction_payment
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `252`
+		//  Estimated: `1737`
+		// Minimum execution time: 33_070_000 picoseconds.
+		Weight::from_parts(33_730_000, 0)
+			.saturating_add(Weight::from_parts(0, 1737))
+			.saturating_add(T::DbWeight::get().reads(3))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_treasury.rs b/polkadot/runtime/rococo/src/weights/pallet_treasury.rs
index 144e9d5b872..acf09989afc 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_treasury.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_treasury.rs
@@ -16,25 +16,28 @@
 
 //! Autogenerated weights for `pallet_treasury`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-07, STEPS: `50`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `cob`, CPU: `<UNKNOWN>`
-//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// ./target/debug/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
 // --chain=rococo-dev
 // --steps=50
-// --repeat=2
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_treasury
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --output=./runtime/rococo/src/weights/
-// --header=./file_header.txt
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,176 +50,168 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_treasury`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn spend_local() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
+		//  Measured:  `142`
 		//  Estimated: `1887`
-		// Minimum execution time: 177_000_000 picoseconds.
-		Weight::from_parts(191_000_000, 0)
+		// Minimum execution time: 9_928_000 picoseconds.
+		Weight::from_parts(10_560_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn propose_spend() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `143`
+		//  Measured:  `243`
 		//  Estimated: `1489`
-		// Minimum execution time: 354_000_000 picoseconds.
-		Weight::from_parts(376_000_000, 0)
+		// Minimum execution time: 20_714_000 picoseconds.
+		Weight::from_parts(21_137_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Treasury Proposals (r:1 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn reject_proposal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `301`
+		//  Measured:  `401`
 		//  Estimated: `3593`
-		// Minimum execution time: 547_000_000 picoseconds.
-		Weight::from_parts(550_000_000, 0)
+		// Minimum execution time: 31_665_000 picoseconds.
+		Weight::from_parts(32_442_000, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Treasury Proposals (r:1 w:0)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:0)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn approve_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `470 + p * (8 ±0)`
+		//  Measured:  `570 + p * (8 ±0)`
 		//  Estimated: `3573`
-		// Minimum execution time: 104_000_000 picoseconds.
-		Weight::from_parts(121_184_402, 0)
+		// Minimum execution time: 6_988_000 picoseconds.
+		Weight::from_parts(11_464_972, 0)
 			.saturating_add(Weight::from_parts(0, 3573))
-			// Standard Error: 42_854
-			.saturating_add(Weight::from_parts(153_112, 0).saturating_mul(p.into()))
+			// Standard Error: 1_722
+			.saturating_add(Weight::from_parts(84_536, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn remove_approval() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `127`
+		//  Measured:  `227`
 		//  Estimated: `1887`
-		// Minimum execution time: 80_000_000 picoseconds.
-		Weight::from_parts(82_000_000, 0)
+		// Minimum execution time: 5_386_000 picoseconds.
+		Weight::from_parts(5_585_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Treasury Deactivated (r:1 w:1)
-	/// Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:1)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:99 w:99)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:199 w:199)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Deactivated` (r:1 w:1)
+	/// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:99 w:99)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:199 w:199)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn on_initialize_proposals(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `331 + p * (251 ±0)`
+		//  Measured:  `431 + p * (251 ±0)`
 		//  Estimated: `3593 + p * (5206 ±0)`
-		// Minimum execution time: 887_000_000 picoseconds.
-		Weight::from_parts(828_616_021, 0)
+		// Minimum execution time: 43_737_000 picoseconds.
+		Weight::from_parts(39_883_021, 0)
 			.saturating_add(Weight::from_parts(0, 3593))
-			// Standard Error: 695_351
-			.saturating_add(Weight::from_parts(566_114_524, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(5))
+			// Standard Error: 12_917
+			.saturating_add(Weight::from_parts(31_796_205, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into())))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().writes(4))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into()))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:0)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(1237), added: 3712, mode: MaxEncodedLen)
-	/// Storage: Treasury SpendCount (r:1 w:1)
-	/// Proof: Treasury SpendCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Spends (r:0 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(1848), added: 4323, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(1238), added: 3713, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::SpendCount` (r:1 w:1)
+	/// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Spends` (r:0 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(1853), added: 4328, mode: `MaxEncodedLen`)
 	fn spend() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `114`
-		//  Estimated: `4702`
-		// Minimum execution time: 208_000_000 picoseconds.
-		Weight::from_parts(222_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 4702))
+		//  Measured:  `215`
+		//  Estimated: `4703`
+		// Minimum execution time: 16_829_000 picoseconds.
+		Weight::from_parts(17_251_000, 0)
+			.saturating_add(Weight::from_parts(0, 4703))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(1848), added: 4323, mode: MaxEncodedLen)
-	/// Storage: XcmPallet QueryCounter (r:1 w:1)
-	/// Proof Skipped: XcmPallet QueryCounter (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DeliveryFeeFactor (r:1 w:0)
-	/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured)
-	/// Storage: XcmPallet SupportedVersion (r:1 w:0)
-	/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured)
-	/// Storage: XcmPallet VersionDiscoveryQueue (r:1 w:1)
-	/// Proof Skipped: XcmPallet VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: XcmPallet SafeXcmVersion (r:1 w:0)
-	/// Proof Skipped: XcmPallet SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
-	/// Storage: XcmPallet Queries (r:0 w:1)
-	/// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(1853), added: 4328, mode: `MaxEncodedLen`)
+	/// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
+	/// Proof: `XcmPallet::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::Queries` (r:0 w:1)
+	/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `737`
-		//  Estimated: `5313`
-		// Minimum execution time: 551_000_000 picoseconds.
-		Weight::from_parts(569_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 5313))
-			.saturating_add(T::DbWeight::get().reads(9))
-			.saturating_add(T::DbWeight::get().writes(6))
+		//  Measured:  `458`
+		//  Estimated: `5318`
+		// Minimum execution time: 41_554_000 picoseconds.
+		Weight::from_parts(42_451_000, 0)
+			.saturating_add(Weight::from_parts(0, 5318))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(1848), added: 4323, mode: MaxEncodedLen)
-	/// Storage: XcmPallet Queries (r:1 w:1)
-	/// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(1853), added: 4328, mode: `MaxEncodedLen`)
+	/// Storage: `XcmPallet::Queries` (r:1 w:1)
+	/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn check_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `442`
-		//  Estimated: `5313`
-		// Minimum execution time: 245_000_000 picoseconds.
-		Weight::from_parts(281_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 5313))
+		//  Measured:  `306`
+		//  Estimated: `5318`
+		// Minimum execution time: 22_546_000 picoseconds.
+		Weight::from_parts(23_151_000, 0)
+			.saturating_add(Weight::from_parts(0, 5318))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(1848), added: 4323, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(1853), added: 4328, mode: `MaxEncodedLen`)
 	fn void_spend() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `172`
-		//  Estimated: `5313`
-		// Minimum execution time: 147_000_000 picoseconds.
-		Weight::from_parts(160_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 5313))
+		//  Measured:  `278`
+		//  Estimated: `5318`
+		// Minimum execution time: 12_169_000 picoseconds.
+		Weight::from_parts(12_484_000, 0)
+			.saturating_add(Weight::from_parts(0, 5318))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_utility.rs b/polkadot/runtime/rococo/src/weights/pallet_utility.rs
index f50f60eaad7..6f2a374247f 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_utility.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_utility.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_utility`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_utility
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -52,18 +55,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_738_000 picoseconds.
-		Weight::from_parts(2_704_821, 0)
+		// Minimum execution time: 4_041_000 picoseconds.
+		Weight::from_parts(5_685_496, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2_999
-			.saturating_add(Weight::from_parts(4_627_278, 0).saturating_mul(c.into()))
+			// Standard Error: 810
+			.saturating_add(Weight::from_parts(3_177_197, 0).saturating_mul(c.into()))
 	}
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_294_000 picoseconds.
-		Weight::from_parts(5_467_000, 0)
+		// Minimum execution time: 3_667_000 picoseconds.
+		Weight::from_parts(3_871_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -71,18 +74,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_828_000 picoseconds.
-		Weight::from_parts(4_650_678, 0)
+		// Minimum execution time: 4_116_000 picoseconds.
+		Weight::from_parts(6_453_932, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2_789
-			.saturating_add(Weight::from_parts(4_885_004, 0).saturating_mul(c.into()))
+			// Standard Error: 825
+			.saturating_add(Weight::from_parts(3_366_112, 0).saturating_mul(c.into()))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_020_000 picoseconds.
-		Weight::from_parts(9_205_000, 0)
+		// Minimum execution time: 5_630_000 picoseconds.
+		Weight::from_parts(5_956_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -90,10 +93,10 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_852_000 picoseconds.
-		Weight::from_parts(20_703_134, 0)
+		// Minimum execution time: 4_165_000 picoseconds.
+		Weight::from_parts(5_442_561, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3_924
-			.saturating_add(Weight::from_parts(4_604_529, 0).saturating_mul(c.into()))
+			// Standard Error: 460
+			.saturating_add(Weight::from_parts(3_173_577, 0).saturating_mul(c.into()))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_vesting.rs b/polkadot/runtime/rococo/src/weights/pallet_vesting.rs
index 2596207d583..c21ab087774 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_vesting.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_vesting.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `pallet_vesting`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=pallet_vesting
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,143 +50,143 @@ use core::marker::PhantomData;
 /// Weight functions for `pallet_vesting`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_vesting::WeightInfo for WeightInfo<T> {
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[1, 28]`.
 	fn vest_locked(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `277 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 32_820_000 picoseconds.
-		Weight::from_parts(31_640_992, 0)
+		// Minimum execution time: 29_288_000 picoseconds.
+		Weight::from_parts(29_095_507, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 449
-			.saturating_add(Weight::from_parts(45_254, 0).saturating_mul(l.into()))
-			// Standard Error: 800
-			.saturating_add(Weight::from_parts(72_178, 0).saturating_mul(s.into()))
+			// Standard Error: 1_679
+			.saturating_add(Weight::from_parts(33_164, 0).saturating_mul(l.into()))
+			// Standard Error: 2_988
+			.saturating_add(Weight::from_parts(67_092, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[1, 28]`.
 	fn vest_unlocked(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `277 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 36_054_000 picoseconds.
-		Weight::from_parts(35_825_428, 0)
+		// Minimum execution time: 31_003_000 picoseconds.
+		Weight::from_parts(30_528_438, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 749
-			.saturating_add(Weight::from_parts(31_738, 0).saturating_mul(l.into()))
-			// Standard Error: 1_333
-			.saturating_add(Weight::from_parts(40_580, 0).saturating_mul(s.into()))
+			// Standard Error: 1_586
+			.saturating_add(Weight::from_parts(35_429, 0).saturating_mul(l.into()))
+			// Standard Error: 2_823
+			.saturating_add(Weight::from_parts(76_505, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[1, 28]`.
 	fn vest_other_locked(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `380 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 35_440_000 picoseconds.
-		Weight::from_parts(34_652_647, 0)
+		// Minimum execution time: 31_269_000 picoseconds.
+		Weight::from_parts(30_661_898, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 517
-			.saturating_add(Weight::from_parts(41_942, 0).saturating_mul(l.into()))
-			// Standard Error: 920
-			.saturating_add(Weight::from_parts(66_074, 0).saturating_mul(s.into()))
+			// Standard Error: 1_394
+			.saturating_add(Weight::from_parts(39_300, 0).saturating_mul(l.into()))
+			// Standard Error: 2_480
+			.saturating_add(Weight::from_parts(78_849, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[1, 28]`.
 	fn vest_other_unlocked(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `380 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 38_880_000 picoseconds.
-		Weight::from_parts(39_625_819, 0)
+		// Minimum execution time: 33_040_000 picoseconds.
+		Weight::from_parts(32_469_674, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 1_032
-			.saturating_add(Weight::from_parts(29_856, 0).saturating_mul(l.into()))
-			// Standard Error: 1_837
-			.saturating_add(Weight::from_parts(6_210, 0).saturating_mul(s.into()))
+			// Standard Error: 1_418
+			.saturating_add(Weight::from_parts(44_206, 0).saturating_mul(l.into()))
+			// Standard Error: 2_523
+			.saturating_add(Weight::from_parts(74_224, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[0, 27]`.
 	fn vested_transfer(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `451 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 68_294_000 picoseconds.
-		Weight::from_parts(68_313_394, 0)
+		// Minimum execution time: 62_032_000 picoseconds.
+		Weight::from_parts(63_305_621, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 983
-			.saturating_add(Weight::from_parts(48_156, 0).saturating_mul(l.into()))
-			// Standard Error: 1_750
-			.saturating_add(Weight::from_parts(87_719, 0).saturating_mul(s.into()))
+			// Standard Error: 2_277
+			.saturating_add(Weight::from_parts(42_767, 0).saturating_mul(l.into()))
+			// Standard Error: 4_051
+			.saturating_add(Weight::from_parts(65_487, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[0, 27]`.
 	fn force_vested_transfer(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `554 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `6196`
-		// Minimum execution time: 70_529_000 picoseconds.
-		Weight::from_parts(70_619_962, 0)
+		// Minimum execution time: 63_303_000 picoseconds.
+		Weight::from_parts(65_180_847, 0)
 			.saturating_add(Weight::from_parts(0, 6196))
-			// Standard Error: 1_259
-			.saturating_add(Weight::from_parts(50_685, 0).saturating_mul(l.into()))
-			// Standard Error: 2_241
-			.saturating_add(Weight::from_parts(91_444, 0).saturating_mul(s.into()))
+			// Standard Error: 2_220
+			.saturating_add(Weight::from_parts(28_829, 0).saturating_mul(l.into()))
+			// Standard Error: 3_951
+			.saturating_add(Weight::from_parts(84_970, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -192,59 +195,70 @@ impl<T: frame_system::Config> pallet_vesting::WeightInfo for WeightInfo<T> {
 	/// Storage: `Balances::Locks` (r:1 w:1)
 	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Freezes` (r:1 w:0)
-	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[2, 28]`.
-	fn force_remove_vesting_schedule(l: u32, s: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `555 + l * (25 ±0) + s * (36 ±0)`
-		//  Estimated: `4764`
-		// Minimum execution time: 41_497_000 picoseconds.
-		Weight::from_parts(38_763_834, 4764)
-			// Standard Error: 2_030
-			.saturating_add(Weight::from_parts(99_580, 0).saturating_mul(l.into()))
-			// Standard Error: 3_750
-			.saturating_add(Weight::from_parts(132_188, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
-	}
 	fn not_unlocking_merge_schedules(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `378 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 36_428_000 picoseconds.
-		Weight::from_parts(35_604_430, 0)
+		// Minimum execution time: 31_440_000 picoseconds.
+		Weight::from_parts(30_773_053, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 504
-			.saturating_add(Weight::from_parts(43_191, 0).saturating_mul(l.into()))
-			// Standard Error: 931
-			.saturating_add(Weight::from_parts(66_795, 0).saturating_mul(s.into()))
+			// Standard Error: 1_474
+			.saturating_add(Weight::from_parts(43_019, 0).saturating_mul(l.into()))
+			// Standard Error: 2_723
+			.saturating_add(Weight::from_parts(73_360, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 49]`.
 	/// The range of component `s` is `[2, 28]`.
 	fn unlocking_merge_schedules(l: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `378 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 40_696_000 picoseconds.
-		Weight::from_parts(39_741_284, 0)
+		// Minimum execution time: 34_221_000 picoseconds.
+		Weight::from_parts(33_201_125, 0)
+			.saturating_add(Weight::from_parts(0, 4764))
+			// Standard Error: 1_751
+			.saturating_add(Weight::from_parts(44_088, 0).saturating_mul(l.into()))
+			// Standard Error: 3_234
+			.saturating_add(Weight::from_parts(86_228, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// The range of component `l` is `[0, 49]`.
+	/// The range of component `s` is `[2, 28]`.
+	fn force_remove_vesting_schedule(l: u32, s: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `451 + l * (25 ±0) + s * (36 ±0)`
+		//  Estimated: `4764`
+		// Minimum execution time: 35_553_000 picoseconds.
+		Weight::from_parts(34_974_083, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
-			// Standard Error: 478
-			.saturating_add(Weight::from_parts(43_792, 0).saturating_mul(l.into()))
-			// Standard Error: 883
-			.saturating_add(Weight::from_parts(66_540, 0).saturating_mul(s.into()))
+			// Standard Error: 1_560
+			.saturating_add(Weight::from_parts(34_615, 0).saturating_mul(l.into()))
+			// Standard Error: 2_882
+			.saturating_add(Weight::from_parts(83_419, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_whitelist.rs b/polkadot/runtime/rococo/src/weights/pallet_whitelist.rs
index 7c307deec4c..ec67268d144 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_whitelist.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_whitelist.rs
@@ -16,26 +16,28 @@
 
 //! Autogenerated weights for `pallet_whitelist`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-08-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-aahe6cbd-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_whitelist
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
-// --pallet=pallet_whitelist
-// --chain=rococo-dev
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,67 +52,75 @@ pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_whitelist::WeightInfo for WeightInfo<T> {
 	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
 	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
-	/// Storage: `Preimage::StatusFor` (r:1 w:1)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn whitelist_call() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `223`
 		//  Estimated: `3556`
-		// Minimum execution time: 20_035_000 picoseconds.
-		Weight::from_parts(20_452_000, 0)
+		// Minimum execution time: 16_686_000 picoseconds.
+		Weight::from_parts(17_042_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
 	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
-	/// Storage: `Preimage::StatusFor` (r:1 w:1)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn remove_whitelisted_call() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `352`
 		//  Estimated: `3556`
-		// Minimum execution time: 20_247_000 picoseconds.
-		Weight::from_parts(20_808_000, 0)
+		// Minimum execution time: 18_250_000 picoseconds.
+		Weight::from_parts(19_026_000, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
-			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
 	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
-	/// Storage: `Preimage::StatusFor` (r:1 w:1)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 4194294]`.
 	fn dispatch_whitelisted_call(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `428 + n * (1 ±0)`
 		//  Estimated: `3892 + n * (1 ±0)`
-		// Minimum execution time: 32_633_000 picoseconds.
-		Weight::from_parts(32_855_000, 0)
+		// Minimum execution time: 28_741_000 picoseconds.
+		Weight::from_parts(29_024_000, 0)
 			.saturating_add(Weight::from_parts(0, 3892))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_223, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(3))
+			// Standard Error: 7
+			.saturating_add(Weight::from_parts(1_305, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
 	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
 	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
-	/// Storage: `Preimage::StatusFor` (r:1 w:1)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 10000]`.
 	fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `352`
 		//  Estimated: `3556`
-		// Minimum execution time: 23_833_000 picoseconds.
-		Weight::from_parts(24_698_994, 0)
+		// Minimum execution time: 21_670_000 picoseconds.
+		Weight::from_parts(22_561_364, 0)
 			.saturating_add(Weight::from_parts(0, 3556))
 			// Standard Error: 4
-			.saturating_add(Weight::from_parts(1_454, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(Weight::from_parts(1_468, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/pallet_xcm.rs b/polkadot/runtime/rococo/src/weights/pallet_xcm.rs
index 5544ca44658..d5cf33515e6 100644
--- a/polkadot/runtime/rococo/src/weights/pallet_xcm.rs
+++ b/polkadot/runtime/rococo/src/weights/pallet_xcm.rs
@@ -17,23 +17,25 @@
 //! Autogenerated weights for `pallet_xcm`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_xcm
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_xcm
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
 // --output=./polkadot/runtime/rococo/src/weights/
 
@@ -60,8 +62,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3645`
-		// Minimum execution time: 25_043_000 picoseconds.
-		Weight::from_parts(25_682_000, 0)
+		// Minimum execution time: 25_521_000 picoseconds.
+		Weight::from_parts(25_922_000, 0)
 			.saturating_add(Weight::from_parts(0, 3645))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -80,8 +82,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3645`
-		// Minimum execution time: 107_570_000 picoseconds.
-		Weight::from_parts(109_878_000, 0)
+		// Minimum execution time: 112_185_000 picoseconds.
+		Weight::from_parts(115_991_000, 0)
 			.saturating_add(Weight::from_parts(0, 3645))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -100,8 +102,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `232`
 		//  Estimated: `3697`
-		// Minimum execution time: 106_341_000 picoseconds.
-		Weight::from_parts(109_135_000, 0)
+		// Minimum execution time: 108_693_000 picoseconds.
+		Weight::from_parts(111_853_000, 0)
 			.saturating_add(Weight::from_parts(0, 3697))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -120,8 +122,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3645`
-		// Minimum execution time: 108_372_000 picoseconds.
-		Weight::from_parts(112_890_000, 0)
+		// Minimum execution time: 113_040_000 picoseconds.
+		Weight::from_parts(115_635_000, 0)
 			.saturating_add(Weight::from_parts(0, 3645))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -130,8 +132,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_957_000 picoseconds.
-		Weight::from_parts(7_417_000, 0)
+		// Minimum execution time: 6_979_000 picoseconds.
+		Weight::from_parts(7_342_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `XcmPallet::SupportedVersion` (r:0 w:1)
@@ -140,8 +142,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_053_000 picoseconds.
-		Weight::from_parts(7_462_000, 0)
+		// Minimum execution time: 7_144_000 picoseconds.
+		Weight::from_parts(7_297_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -149,8 +151,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_918_000 picoseconds.
-		Weight::from_parts(2_037_000, 0)
+		// Minimum execution time: 1_886_000 picoseconds.
+		Weight::from_parts(1_995_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1)
@@ -171,8 +173,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3645`
-		// Minimum execution time: 30_417_000 picoseconds.
-		Weight::from_parts(31_191_000, 0)
+		// Minimum execution time: 31_238_000 picoseconds.
+		Weight::from_parts(31_955_000, 0)
 			.saturating_add(Weight::from_parts(0, 3645))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(5))
@@ -193,8 +195,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `360`
 		//  Estimated: `3825`
-		// Minimum execution time: 36_666_000 picoseconds.
-		Weight::from_parts(37_779_000, 0)
+		// Minimum execution time: 37_237_000 picoseconds.
+		Weight::from_parts(38_569_000, 0)
 			.saturating_add(Weight::from_parts(0, 3825))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -205,8 +207,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_869_000 picoseconds.
-		Weight::from_parts(2_003_000, 0)
+		// Minimum execution time: 1_884_000 picoseconds.
+		Weight::from_parts(2_028_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -216,8 +218,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `22`
 		//  Estimated: `13387`
-		// Minimum execution time: 16_188_000 picoseconds.
-		Weight::from_parts(16_435_000, 0)
+		// Minimum execution time: 16_048_000 picoseconds.
+		Weight::from_parts(16_617_000, 0)
 			.saturating_add(Weight::from_parts(0, 13387))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -228,8 +230,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `26`
 		//  Estimated: `13391`
-		// Minimum execution time: 16_431_000 picoseconds.
-		Weight::from_parts(16_935_000, 0)
+		// Minimum execution time: 16_073_000 picoseconds.
+		Weight::from_parts(16_672_000, 0)
 			.saturating_add(Weight::from_parts(0, 13391))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -240,8 +242,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `40`
 		//  Estimated: `15880`
-		// Minimum execution time: 18_460_000 picoseconds.
-		Weight::from_parts(18_885_000, 0)
+		// Minimum execution time: 18_422_000 picoseconds.
+		Weight::from_parts(18_900_000, 0)
 			.saturating_add(Weight::from_parts(0, 15880))
 			.saturating_add(T::DbWeight::get().reads(6))
 	}
@@ -259,8 +261,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `6156`
-		// Minimum execution time: 29_623_000 picoseconds.
-		Weight::from_parts(30_661_000, 0)
+		// Minimum execution time: 30_373_000 picoseconds.
+		Weight::from_parts(30_972_000, 0)
 			.saturating_add(Weight::from_parts(0, 6156))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -271,8 +273,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `69`
 		//  Estimated: `10959`
-		// Minimum execution time: 12_043_000 picoseconds.
-		Weight::from_parts(12_360_000, 0)
+		// Minimum execution time: 11_863_000 picoseconds.
+		Weight::from_parts(12_270_000, 0)
 			.saturating_add(Weight::from_parts(0, 10959))
 			.saturating_add(T::DbWeight::get().reads(4))
 	}
@@ -282,8 +284,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `33`
 		//  Estimated: `13398`
-		// Minimum execution time: 16_511_000 picoseconds.
-		Weight::from_parts(17_011_000, 0)
+		// Minimum execution time: 16_733_000 picoseconds.
+		Weight::from_parts(17_094_000, 0)
 			.saturating_add(Weight::from_parts(0, 13398))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -302,8 +304,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `13581`
-		// Minimum execution time: 39_041_000 picoseconds.
-		Weight::from_parts(39_883_000, 0)
+		// Minimum execution time: 39_236_000 picoseconds.
+		Weight::from_parts(40_587_000, 0)
 			.saturating_add(Weight::from_parts(0, 13581))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -316,8 +318,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 2_030_000 picoseconds.
-		Weight::from_parts(2_150_000, 0)
+		// Minimum execution time: 2_145_000 picoseconds.
+		Weight::from_parts(2_255_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -328,8 +330,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `7576`
 		//  Estimated: `11041`
-		// Minimum execution time: 22_615_000 picoseconds.
-		Weight::from_parts(23_008_000, 0)
+		// Minimum execution time: 22_518_000 picoseconds.
+		Weight::from_parts(22_926_000, 0)
 			.saturating_add(Weight::from_parts(0, 11041))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_fungible.rs b/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_fungible.rs
new file mode 100644
index 00000000000..dc5e5d8ca4b
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_fungible.rs
@@ -0,0 +1,191 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_xcm_benchmarks::fungible
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_fungible.rs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm_benchmarks::fungible`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_xcm_benchmarks::fungible::WeightInfo for WeightInfo<T> {
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn withdraw_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `101`
+		//  Estimated: `3593`
+		// Minimum execution time: 27_223_000 picoseconds.
+		Weight::from_parts(27_947_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn transfer_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `101`
+		//  Estimated: `6196`
+		// Minimum execution time: 36_502_000 picoseconds.
+		Weight::from_parts(37_023_000, 0)
+			.saturating_add(Weight::from_parts(0, 6196))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn transfer_reserve_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `6196`
+		// Minimum execution time: 85_152_000 picoseconds.
+		Weight::from_parts(86_442_000, 0)
+			.saturating_add(Weight::from_parts(0, 6196))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(4))
+	}
+	/// Storage: `Benchmark::Override` (r:0 w:0)
+	/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn reserve_asset_deposited() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
+		Weight::from_parts(18_446_744_073_709_551_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn initiate_reserve_withdraw() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `3746`
+		// Minimum execution time: 56_571_000 picoseconds.
+		Weight::from_parts(58_163_000, 0)
+			.saturating_add(Weight::from_parts(0, 3746))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn receive_teleported_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `103`
+		//  Estimated: `3593`
+		// Minimum execution time: 27_411_000 picoseconds.
+		Weight::from_parts(27_953_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn deposit_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `3593`
+		// Minimum execution time: 20_776_000 picoseconds.
+		Weight::from_parts(21_145_000, 0)
+			.saturating_add(Weight::from_parts(0, 3593))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn deposit_reserve_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `3645`
+		// Minimum execution time: 51_738_000 picoseconds.
+		Weight::from_parts(53_251_000, 0)
+			.saturating_add(Weight::from_parts(0, 3645))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn initiate_teleport() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `3645`
+		// Minimum execution time: 39_333_000 picoseconds.
+		Weight::from_parts(40_515_000, 0)
+			.saturating_add(Weight::from_parts(0, 3645))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_generic.rs b/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_generic.rs
new file mode 100644
index 00000000000..b62f36172ba
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_generic.rs
@@ -0,0 +1,347 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=pallet_xcm_benchmarks::generic
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/pallet_xcm_benchmarks_generic.rs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm_benchmarks::generic`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_xcm_benchmarks::generic::WeightInfo for WeightInfo<T> {
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn report_holding() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `3746`
+		// Minimum execution time: 55_210_000 picoseconds.
+		Weight::from_parts(56_613_000, 0)
+			.saturating_add(Weight::from_parts(0, 3746))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	fn buy_execution() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_246_000 picoseconds.
+		Weight::from_parts(1_339_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `XcmPallet::Queries` (r:1 w:0)
+	/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn query_response() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `3465`
+		// Minimum execution time: 5_377_000 picoseconds.
+		Weight::from_parts(5_549_000, 0)
+			.saturating_add(Weight::from_parts(0, 3465))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn transact() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 7_008_000 picoseconds.
+		Weight::from_parts(7_361_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn refund_surplus() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_700_000 picoseconds.
+		Weight::from_parts(1_848_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn set_error_handler() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_198_000 picoseconds.
+		Weight::from_parts(1_265_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn set_appendix() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_197_000 picoseconds.
+		Weight::from_parts(1_267_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn clear_error() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_193_000 picoseconds.
+		Weight::from_parts(1_258_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn descend_origin() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_268_000 picoseconds.
+		Weight::from_parts(1_342_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn clear_origin() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_173_000 picoseconds.
+		Weight::from_parts(1_248_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn report_error() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `3746`
+		// Minimum execution time: 53_715_000 picoseconds.
+		Weight::from_parts(54_860_000, 0)
+			.saturating_add(Weight::from_parts(0, 3746))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	/// Storage: `XcmPallet::AssetTraps` (r:1 w:1)
+	/// Proof: `XcmPallet::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn claim_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `23`
+		//  Estimated: `3488`
+		// Minimum execution time: 8_621_000 picoseconds.
+		Weight::from_parts(8_903_000, 0)
+			.saturating_add(Weight::from_parts(0, 3488))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	fn trap() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_211_000 picoseconds.
+		Weight::from_parts(1_281_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `XcmPallet::VersionNotifyTargets` (r:1 w:1)
+	/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn subscribe_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `3645`
+		// Minimum execution time: 26_448_000 picoseconds.
+		Weight::from_parts(27_057_000, 0)
+			.saturating_add(Weight::from_parts(0, 3645))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	/// Storage: `XcmPallet::VersionNotifyTargets` (r:0 w:1)
+	/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn unsubscribe_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_498_000 picoseconds.
+		Weight::from_parts(3_614_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	fn burn_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_575_000 picoseconds.
+		Weight::from_parts(1_698_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn expect_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_334_000 picoseconds.
+		Weight::from_parts(1_435_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn expect_origin() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_244_000 picoseconds.
+		Weight::from_parts(1_337_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn expect_error() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_244_000 picoseconds.
+		Weight::from_parts(1_331_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn expect_transact_status() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_407_000 picoseconds.
+		Weight::from_parts(1_522_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn query_pallet() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `3746`
+		// Minimum execution time: 62_963_000 picoseconds.
+		Weight::from_parts(64_556_000, 0)
+			.saturating_add(Weight::from_parts(0, 3746))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	fn expect_pallet() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 8_458_000 picoseconds.
+		Weight::from_parts(8_741_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
+	/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn report_transact_status() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `281`
+		//  Estimated: `3746`
+		// Minimum execution time: 54_068_000 picoseconds.
+		Weight::from_parts(55_665_000, 0)
+			.saturating_add(Weight::from_parts(0, 3746))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(3))
+	}
+	fn clear_transact_status() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_290_000 picoseconds.
+		Weight::from_parts(1_348_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn set_topic() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_189_000 picoseconds.
+		Weight::from_parts(1_268_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn clear_topic() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_197_000 picoseconds.
+		Weight::from_parts(1_276_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn set_fees_mode() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_197_000 picoseconds.
+		Weight::from_parts(1_253_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn unpaid_execution() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 1_250_000 picoseconds.
+		Weight::from_parts(1_354_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_assigned_slots.rs b/polkadot/runtime/rococo/src/weights/runtime_common_assigned_slots.rs
index a6beeded428..f41a5d4ebf8 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_assigned_slots.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_assigned_slots.rs
@@ -16,26 +16,28 @@
 
 //! Autogenerated weights for `runtime_common::assigned_slots`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-08-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-ynta1nyy-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=runtime_common::assigned_slots
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
-// --pallet=runtime_common::assigned_slots
-// --chain=rococo-dev
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_assigned_slots.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -48,7 +50,7 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::assigned_slots`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for WeightInfo<T> {
-	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
 	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
 	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -68,15 +70,15 @@ impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for Wei
 	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn assign_perm_parachain_slot() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `673`
-		//  Estimated: `4138`
-		// Minimum execution time: 84_646_000 picoseconds.
-		Weight::from_parts(91_791_000, 0)
-			.saturating_add(Weight::from_parts(0, 4138))
+		//  Measured:  `730`
+		//  Estimated: `4195`
+		// Minimum execution time: 71_337_000 picoseconds.
+		Weight::from_parts(80_807_000, 0)
+			.saturating_add(Weight::from_parts(0, 4195))
 			.saturating_add(T::DbWeight::get().reads(9))
-			.saturating_add(T::DbWeight::get().writes(6))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
 	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
 	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -98,13 +100,13 @@ impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for Wei
 	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn assign_temp_parachain_slot() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `673`
-		//  Estimated: `4138`
-		// Minimum execution time: 68_091_000 picoseconds.
-		Weight::from_parts(77_310_000, 0)
-			.saturating_add(Weight::from_parts(0, 4138))
+		//  Measured:  `730`
+		//  Estimated: `4195`
+		// Minimum execution time: 60_188_000 picoseconds.
+		Weight::from_parts(63_932_000, 0)
+			.saturating_add(Weight::from_parts(0, 4195))
 			.saturating_add(T::DbWeight::get().reads(10))
-			.saturating_add(T::DbWeight::get().writes(7))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
 	/// Storage: `AssignedSlots::PermanentSlots` (r:1 w:0)
 	/// Proof: `AssignedSlots::PermanentSlots` (`max_values`: None, `max_size`: Some(20), added: 2495, mode: `MaxEncodedLen`)
@@ -118,11 +120,11 @@ impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for Wei
 	/// Proof: `AssignedSlots::TemporarySlotCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn unassign_parachain_slot() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `823`
-		//  Estimated: `4288`
-		// Minimum execution time: 38_081_000 picoseconds.
-		Weight::from_parts(40_987_000, 0)
-			.saturating_add(Weight::from_parts(0, 4288))
+		//  Measured:  `856`
+		//  Estimated: `4321`
+		// Minimum execution time: 35_764_000 picoseconds.
+		Weight::from_parts(38_355_000, 0)
+			.saturating_add(Weight::from_parts(0, 4321))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -132,8 +134,8 @@ impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for Wei
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_182_000 picoseconds.
-		Weight::from_parts(7_437_000, 0)
+		// Minimum execution time: 4_634_000 picoseconds.
+		Weight::from_parts(4_852_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -143,8 +145,8 @@ impl<T: frame_system::Config> runtime_common::assigned_slots::WeightInfo for Wei
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_153_000 picoseconds.
-		Weight::from_parts(7_456_000, 0)
+		// Minimum execution time: 4_563_000 picoseconds.
+		Weight::from_parts(4_829_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_auctions.rs b/polkadot/runtime/rococo/src/weights/runtime_common_auctions.rs
index 3cd7c7a47e9..2b756802289 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_auctions.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_auctions.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_common::auctions`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::auctions
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_common_auctions.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_auctions.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,92 +50,90 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::auctions`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::auctions::WeightInfo for WeightInfo<T> {
-	/// Storage: Auctions AuctionInfo (r:1 w:1)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Auctions AuctionCounter (r:1 w:1)
-	/// Proof: Auctions AuctionCounter (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `Auctions::AuctionInfo` (r:1 w:1)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::AuctionCounter` (r:1 w:1)
+	/// Proof: `Auctions::AuctionCounter` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn new_auction() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `4`
 		//  Estimated: `1493`
-		// Minimum execution time: 12_805_000 picoseconds.
-		Weight::from_parts(13_153_000, 0)
+		// Minimum execution time: 7_307_000 picoseconds.
+		Weight::from_parts(7_680_000, 0)
 			.saturating_add(Weight::from_parts(0, 1493))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Auctions AuctionCounter (r:1 w:0)
-	/// Proof: Auctions AuctionCounter (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Auctions AuctionInfo (r:1 w:0)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Slots Leases (r:1 w:0)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Auctions Winning (r:1 w:1)
-	/// Proof: Auctions Winning (max_values: None, max_size: Some(1920), added: 4395, mode: MaxEncodedLen)
-	/// Storage: Auctions ReservedAmounts (r:2 w:2)
-	/// Proof: Auctions ReservedAmounts (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Auctions::AuctionCounter` (r:1 w:0)
+	/// Proof: `Auctions::AuctionCounter` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::AuctionInfo` (r:1 w:0)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Slots::Leases` (r:1 w:0)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Auctions::Winning` (r:1 w:1)
+	/// Proof: `Auctions::Winning` (`max_values`: None, `max_size`: Some(1920), added: 4395, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::ReservedAmounts` (r:2 w:2)
+	/// Proof: `Auctions::ReservedAmounts` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn bid() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `728`
+		//  Measured:  `761`
 		//  Estimated: `6060`
-		// Minimum execution time: 77_380_000 picoseconds.
-		Weight::from_parts(80_503_000, 0)
+		// Minimum execution time: 75_448_000 picoseconds.
+		Weight::from_parts(78_716_000, 0)
 			.saturating_add(Weight::from_parts(0, 6060))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Auctions AuctionInfo (r:1 w:1)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe NextRandomness (r:1 w:0)
-	/// Proof: Babe NextRandomness (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: Babe EpochStart (r:1 w:0)
-	/// Proof: Babe EpochStart (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Auctions AuctionCounter (r:1 w:0)
-	/// Proof: Auctions AuctionCounter (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Auctions Winning (r:3600 w:3600)
-	/// Proof: Auctions Winning (max_values: None, max_size: Some(1920), added: 4395, mode: MaxEncodedLen)
-	/// Storage: Auctions ReservedAmounts (r:37 w:36)
-	/// Proof: Auctions ReservedAmounts (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:36 w:36)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Slots Leases (r:2 w:2)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:1)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Auctions::AuctionInfo` (r:1 w:1)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::NextRandomness` (r:1 w:0)
+	/// Proof: `Babe::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::EpochStart` (r:1 w:0)
+	/// Proof: `Babe::EpochStart` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::AuctionCounter` (r:1 w:0)
+	/// Proof: `Auctions::AuctionCounter` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::Winning` (r:3600 w:3600)
+	/// Proof: `Auctions::Winning` (`max_values`: None, `max_size`: Some(1920), added: 4395, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::ReservedAmounts` (r:37 w:36)
+	/// Proof: `Auctions::ReservedAmounts` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:36 w:36)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Slots::Leases` (r:2 w:2)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn on_initialize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `6947789`
+		//  Measured:  `6947017`
 		//  Estimated: `15822990`
-		// Minimum execution time: 6_311_055_000 picoseconds.
-		Weight::from_parts(6_409_142_000, 0)
+		// Minimum execution time: 7_120_207_000 picoseconds.
+		Weight::from_parts(7_273_496_000, 0)
 			.saturating_add(Weight::from_parts(0, 15822990))
-			.saturating_add(T::DbWeight::get().reads(3683))
-			.saturating_add(T::DbWeight::get().writes(3678))
+			.saturating_add(T::DbWeight::get().reads(3682))
+			.saturating_add(T::DbWeight::get().writes(3677))
 	}
-	/// Storage: Auctions ReservedAmounts (r:37 w:36)
-	/// Proof: Auctions ReservedAmounts (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:36 w:36)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Auctions Winning (r:3600 w:3600)
-	/// Proof: Auctions Winning (max_values: None, max_size: Some(1920), added: 4395, mode: MaxEncodedLen)
-	/// Storage: Auctions AuctionInfo (r:0 w:1)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Auctions::ReservedAmounts` (r:37 w:36)
+	/// Proof: `Auctions::ReservedAmounts` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:36 w:36)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::Winning` (r:3600 w:3600)
+	/// Proof: `Auctions::Winning` (`max_values`: None, `max_size`: Some(1920), added: 4395, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::AuctionInfo` (r:0 w:1)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn cancel_auction() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `177732`
 		//  Estimated: `15822990`
-		// Minimum execution time: 4_849_561_000 picoseconds.
-		Weight::from_parts(4_955_226_000, 0)
+		// Minimum execution time: 5_536_281_000 picoseconds.
+		Weight::from_parts(5_675_163_000, 0)
 			.saturating_add(Weight::from_parts(0, 15822990))
 			.saturating_add(T::DbWeight::get().reads(3673))
 			.saturating_add(T::DbWeight::get().writes(3673))
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_claims.rs b/polkadot/runtime/rococo/src/weights/runtime_common_claims.rs
index 52e0dd24afa..de2bb71933b 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_claims.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_claims.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_common::claims`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::claims
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_common_claims.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_claims.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,120 +50,133 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::claims`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::claims::WeightInfo for WeightInfo<T> {
-	/// Storage: Claims Claims (r:1 w:1)
-	/// Proof Skipped: Claims Claims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Signing (r:1 w:1)
-	/// Proof Skipped: Claims Signing (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Total (r:1 w:1)
-	/// Proof Skipped: Claims Total (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Claims Vesting (r:1 w:1)
-	/// Proof Skipped: Claims Vesting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Claims::Claims` (r:1 w:1)
+	/// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:1 w:1)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Total` (r:1 w:1)
+	/// Proof: `Claims::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Vesting` (r:1 w:1)
+	/// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	fn claim() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `558`
 		//  Estimated: `4764`
-		// Minimum execution time: 144_931_000 picoseconds.
-		Weight::from_parts(156_550_000, 0)
+		// Minimum execution time: 181_028_000 picoseconds.
+		Weight::from_parts(194_590_000, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(6))
 	}
-	/// Storage: Claims Total (r:1 w:1)
-	/// Proof Skipped: Claims Total (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Claims Vesting (r:0 w:1)
-	/// Proof Skipped: Claims Vesting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Claims (r:0 w:1)
-	/// Proof Skipped: Claims Claims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Signing (r:0 w:1)
-	/// Proof Skipped: Claims Signing (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Claims::Total` (r:1 w:1)
+	/// Proof: `Claims::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Vesting` (r:0 w:1)
+	/// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Claims` (r:0 w:1)
+	/// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:0 w:1)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn mint_claim() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `1701`
-		// Minimum execution time: 11_300_000 picoseconds.
-		Weight::from_parts(11_642_000, 0)
+		// Minimum execution time: 11_224_000 picoseconds.
+		Weight::from_parts(13_342_000, 0)
 			.saturating_add(Weight::from_parts(0, 1701))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Claims Claims (r:1 w:1)
-	/// Proof Skipped: Claims Claims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Signing (r:1 w:1)
-	/// Proof Skipped: Claims Signing (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Total (r:1 w:1)
-	/// Proof Skipped: Claims Total (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Claims Vesting (r:1 w:1)
-	/// Proof Skipped: Claims Vesting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Claims::Claims` (r:1 w:1)
+	/// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:1 w:1)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Total` (r:1 w:1)
+	/// Proof: `Claims::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Vesting` (r:1 w:1)
+	/// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	fn claim_attest() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `558`
 		//  Estimated: `4764`
-		// Minimum execution time: 149_112_000 picoseconds.
-		Weight::from_parts(153_872_000, 0)
+		// Minimum execution time: 187_964_000 picoseconds.
+		Weight::from_parts(202_553_000, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(6))
 	}
-	/// Storage: Claims Preclaims (r:1 w:1)
-	/// Proof Skipped: Claims Preclaims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Signing (r:1 w:1)
-	/// Proof Skipped: Claims Signing (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Claims (r:1 w:1)
-	/// Proof Skipped: Claims Claims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Total (r:1 w:1)
-	/// Proof Skipped: Claims Total (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Claims Vesting (r:1 w:1)
-	/// Proof Skipped: Claims Vesting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Vesting Vesting (r:1 w:1)
-	/// Proof: Vesting Vesting (max_values: None, max_size: Some(1057), added: 3532, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `Claims::Preclaims` (r:1 w:1)
+	/// Proof: `Claims::Preclaims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:1 w:1)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Claims` (r:1 w:1)
+	/// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Total` (r:1 w:1)
+	/// Proof: `Claims::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Vesting` (r:1 w:1)
+	/// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Vesting::Vesting` (r:1 w:1)
+	/// Proof: `Vesting::Vesting` (`max_values`: None, `max_size`: Some(1057), added: 3532, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	fn attest() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `632`
 		//  Estimated: `4764`
-		// Minimum execution time: 69_619_000 picoseconds.
-		Weight::from_parts(79_242_000, 0)
+		// Minimum execution time: 78_210_000 picoseconds.
+		Weight::from_parts(84_581_000, 0)
 			.saturating_add(Weight::from_parts(0, 4764))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
-	/// Storage: Claims Claims (r:1 w:2)
-	/// Proof Skipped: Claims Claims (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Vesting (r:1 w:2)
-	/// Proof Skipped: Claims Vesting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Signing (r:1 w:2)
-	/// Proof Skipped: Claims Signing (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Claims Preclaims (r:1 w:1)
-	/// Proof Skipped: Claims Preclaims (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Claims::Claims` (r:1 w:2)
+	/// Proof: `Claims::Claims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Vesting` (r:1 w:2)
+	/// Proof: `Claims::Vesting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:1 w:2)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Preclaims` (r:1 w:1)
+	/// Proof: `Claims::Preclaims` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn move_claim() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `440`
 		//  Estimated: `3905`
-		// Minimum execution time: 22_066_000 picoseconds.
-		Weight::from_parts(22_483_000, 0)
+		// Minimum execution time: 33_940_000 picoseconds.
+		Weight::from_parts(48_438_000, 0)
 			.saturating_add(Weight::from_parts(0, 3905))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
+	/// Storage: `Claims::Preclaims` (r:1 w:0)
+	/// Proof: `Claims::Preclaims` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Claims::Signing` (r:1 w:0)
+	/// Proof: `Claims::Signing` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	fn prevalidate_attests() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `296`
+		//  Estimated: `3761`
+		// Minimum execution time: 9_025_000 picoseconds.
+		Weight::from_parts(10_563_000, 0)
+			.saturating_add(Weight::from_parts(0, 3761))
+			.saturating_add(T::DbWeight::get().reads(2))
+	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_coretime.rs b/polkadot/runtime/rococo/src/weights/runtime_common_coretime.rs
new file mode 100644
index 00000000000..d068f07e759
--- /dev/null
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_coretime.rs
@@ -0,0 +1,86 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `runtime_common::coretime`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=rococo-dev
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=runtime_common::coretime
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_coretime.rs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `runtime_common::coretime`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> runtime_common::coretime::WeightInfo for WeightInfo<T> {
+	/// Storage: `Configuration::PendingConfigs` (r:1 w:1)
+	/// Proof: `Configuration::PendingConfigs` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Configuration::BypassConsistencyCheck` (r:1 w:0)
+	/// Proof: `Configuration::BypassConsistencyCheck` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn request_core_count() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `151`
+		//  Estimated: `1636`
+		// Minimum execution time: 7_543_000 picoseconds.
+		Weight::from_parts(7_745_000, 0)
+			.saturating_add(Weight::from_parts(0, 1636))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+	/// Storage: `CoretimeAssignmentProvider::CoreDescriptors` (r:1 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreDescriptors` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `CoretimeAssignmentProvider::CoreSchedules` (r:0 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreSchedules` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `s` is `[1, 100]`.
+	fn assign_core(s: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `3645`
+		// Minimum execution time: 9_367_000 picoseconds.
+		Weight::from_parts(9_932_305, 0)
+			.saturating_add(Weight::from_parts(0, 3645))
+			// Standard Error: 231
+			.saturating_add(Weight::from_parts(12_947, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(2))
+	}
+}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_crowdloan.rs b/polkadot/runtime/rococo/src/weights/runtime_common_crowdloan.rs
index 0e7420cba2e..8ebab3d551e 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_crowdloan.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_crowdloan.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_common::crowdloan`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::crowdloan
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_common_crowdloan.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_crowdloan.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,172 +50,168 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::crowdloan`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::crowdloan::WeightInfo for WeightInfo<T> {
-	/// Storage: Crowdloan Funds (r:1 w:1)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Crowdloan NextFundIndex (r:1 w:1)
-	/// Proof Skipped: Crowdloan NextFundIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Crowdloan::Funds` (r:1 w:1)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::NextFundIndex` (r:1 w:1)
+	/// Proof: `Crowdloan::NextFundIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `438`
 		//  Estimated: `3903`
-		// Minimum execution time: 50_399_000 picoseconds.
-		Weight::from_parts(51_641_000, 0)
+		// Minimum execution time: 46_095_000 picoseconds.
+		Weight::from_parts(48_111_000, 0)
 			.saturating_add(Weight::from_parts(0, 3903))
 			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(4))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:1)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Slots Leases (r:1 w:0)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Auctions AuctionInfo (r:1 w:0)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:1)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Crowdloan EndingsCount (r:1 w:0)
-	/// Proof Skipped: Crowdloan EndingsCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Crowdloan NewRaise (r:1 w:1)
-	/// Proof Skipped: Crowdloan NewRaise (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
-	/// Proof Skipped: unknown `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
+	/// Storage: `Crowdloan::Funds` (r:1 w:1)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Slots::Leases` (r:1 w:0)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Auctions::AuctionInfo` (r:1 w:0)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Crowdloan::EndingsCount` (r:1 w:0)
+	/// Proof: `Crowdloan::EndingsCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::NewRaise` (r:1 w:1)
+	/// Proof: `Crowdloan::NewRaise` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
+	/// Proof: UNKNOWN KEY `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
 	fn contribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `530`
-		//  Estimated: `3995`
-		// Minimum execution time: 128_898_000 picoseconds.
-		Weight::from_parts(130_277_000, 0)
-			.saturating_add(Weight::from_parts(0, 3995))
-			.saturating_add(T::DbWeight::get().reads(8))
-			.saturating_add(T::DbWeight::get().writes(5))
+		//  Measured:  `563`
+		//  Estimated: `4028`
+		// Minimum execution time: 133_059_000 picoseconds.
+		Weight::from_parts(136_515_000, 0)
+			.saturating_add(Weight::from_parts(0, 4028))
+			.saturating_add(T::DbWeight::get().reads(7))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:1)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances InactiveIssuance (r:1 w:1)
-	/// Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: unknown `0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0` (r:1 w:1)
-	/// Proof Skipped: unknown `0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0` (r:1 w:1)
+	/// Storage: `Crowdloan::Funds` (r:1 w:1)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: UNKNOWN KEY `0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0` (r:1 w:1)
+	/// Proof: UNKNOWN KEY `0xc85982571aa615c788ef9b2c16f54f25773fd439e8ee1ed2aa3ae43d48e880f0` (r:1 w:1)
 	fn withdraw() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `689`
+		//  Measured:  `687`
 		//  Estimated: `6196`
-		// Minimum execution time: 69_543_000 picoseconds.
-		Weight::from_parts(71_522_000, 0)
+		// Minimum execution time: 71_733_000 picoseconds.
+		Weight::from_parts(74_034_000, 0)
 			.saturating_add(Weight::from_parts(0, 6196))
-			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `k` is `[0, 1000]`.
 	fn refund(k: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `127 + k * (189 ±0)`
-		//  Estimated: `140 + k * (189 ±0)`
-		// Minimum execution time: 50_735_000 picoseconds.
-		Weight::from_parts(52_282_000, 0)
-			.saturating_add(Weight::from_parts(0, 140))
-			// Standard Error: 21_607
-			.saturating_add(Weight::from_parts(38_955_985, 0).saturating_mul(k.into()))
-			.saturating_add(T::DbWeight::get().reads(4))
+		//  Measured:  `125 + k * (189 ±0)`
+		//  Estimated: `138 + k * (189 ±0)`
+		// Minimum execution time: 46_016_000 picoseconds.
+		Weight::from_parts(48_260_000, 0)
+			.saturating_add(Weight::from_parts(0, 138))
+			// Standard Error: 21_140
+			.saturating_add(Weight::from_parts(39_141_925, 0).saturating_mul(k.into()))
+			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(k.into())))
-			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes(2))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(k.into())))
 			.saturating_add(Weight::from_parts(0, 189).saturating_mul(k.into()))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:1)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Crowdloan::Funds` (r:1 w:1)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn dissolve() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `515`
+		//  Measured:  `514`
 		//  Estimated: `6196`
-		// Minimum execution time: 43_100_000 picoseconds.
-		Weight::from_parts(44_272_000, 0)
+		// Minimum execution time: 44_724_000 picoseconds.
+		Weight::from_parts(47_931_000, 0)
 			.saturating_add(Weight::from_parts(0, 6196))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:1)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Crowdloan::Funds` (r:1 w:1)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn edit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `235`
-		//  Estimated: `3700`
-		// Minimum execution time: 18_702_000 picoseconds.
-		Weight::from_parts(19_408_000, 0)
-			.saturating_add(Weight::from_parts(0, 3700))
+		//  Measured:  `234`
+		//  Estimated: `3699`
+		// Minimum execution time: 19_512_000 picoseconds.
+		Weight::from_parts(21_129_000, 0)
+			.saturating_add(Weight::from_parts(0, 3699))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:0)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: unknown `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
-	/// Proof Skipped: unknown `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
+	/// Storage: `Crowdloan::Funds` (r:1 w:0)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
+	/// Proof: UNKNOWN KEY `0xd861ea1ebf4800d4b89f4ff787ad79ee96d9a708c85b57da7eb8f9ddeda61291` (r:1 w:1)
 	fn add_memo() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `412`
 		//  Estimated: `3877`
-		// Minimum execution time: 25_568_000 picoseconds.
-		Weight::from_parts(26_203_000, 0)
+		// Minimum execution time: 33_529_000 picoseconds.
+		Weight::from_parts(37_082_000, 0)
 			.saturating_add(Weight::from_parts(0, 3877))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Crowdloan Funds (r:1 w:0)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Crowdloan NewRaise (r:1 w:1)
-	/// Proof Skipped: Crowdloan NewRaise (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Crowdloan::Funds` (r:1 w:0)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::NewRaise` (r:1 w:1)
+	/// Proof: `Crowdloan::NewRaise` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn poke() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `239`
-		//  Estimated: `3704`
-		// Minimum execution time: 17_832_000 picoseconds.
-		Weight::from_parts(18_769_000, 0)
-			.saturating_add(Weight::from_parts(0, 3704))
+		//  Measured:  `238`
+		//  Estimated: `3703`
+		// Minimum execution time: 23_153_000 picoseconds.
+		Weight::from_parts(24_181_000, 0)
+			.saturating_add(Weight::from_parts(0, 3703))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Auctions AuctionInfo (r:1 w:0)
-	/// Proof: Auctions AuctionInfo (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Crowdloan EndingsCount (r:1 w:1)
-	/// Proof Skipped: Crowdloan EndingsCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Crowdloan NewRaise (r:1 w:1)
-	/// Proof Skipped: Crowdloan NewRaise (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Crowdloan Funds (r:100 w:0)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Auctions AuctionCounter (r:1 w:0)
-	/// Proof: Auctions AuctionCounter (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Paras ParaLifecycles (r:100 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Slots Leases (r:100 w:0)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Auctions Winning (r:1 w:1)
-	/// Proof: Auctions Winning (max_values: None, max_size: Some(1920), added: 4395, mode: MaxEncodedLen)
-	/// Storage: Auctions ReservedAmounts (r:100 w:100)
-	/// Proof: Auctions ReservedAmounts (max_values: None, max_size: Some(60), added: 2535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:100 w:100)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Auctions::AuctionInfo` (r:1 w:0)
+	/// Proof: `Auctions::AuctionInfo` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Crowdloan::EndingsCount` (r:1 w:1)
+	/// Proof: `Crowdloan::EndingsCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::NewRaise` (r:1 w:1)
+	/// Proof: `Crowdloan::NewRaise` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::Funds` (r:100 w:0)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Auctions::AuctionCounter` (r:1 w:0)
+	/// Proof: `Auctions::AuctionCounter` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Paras::ParaLifecycles` (r:100 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Slots::Leases` (r:100 w:0)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Auctions::Winning` (r:1 w:1)
+	/// Proof: `Auctions::Winning` (`max_values`: None, `max_size`: Some(1920), added: 4395, mode: `MaxEncodedLen`)
+	/// Storage: `Auctions::ReservedAmounts` (r:100 w:100)
+	/// Proof: `Auctions::ReservedAmounts` (`max_values`: None, `max_size`: Some(60), added: 2535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:100 w:100)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[2, 100]`.
 	fn on_initialize(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `197 + n * (356 ±0)`
+		//  Measured:  `229 + n * (356 ±0)`
 		//  Estimated: `5385 + n * (2832 ±0)`
-		// Minimum execution time: 128_319_000 picoseconds.
-		Weight::from_parts(130_877_000, 0)
+		// Minimum execution time: 120_164_000 picoseconds.
+		Weight::from_parts(3_390_119, 0)
 			.saturating_add(Weight::from_parts(0, 5385))
-			// Standard Error: 61_381
-			.saturating_add(Weight::from_parts(60_209_202, 0).saturating_mul(n.into()))
+			// Standard Error: 41_727
+			.saturating_add(Weight::from_parts(54_453_016, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_identity_migrator.rs b/polkadot/runtime/rococo/src/weights/runtime_common_identity_migrator.rs
index cec357453b6..9b0cb98e6c0 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_identity_migrator.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_identity_migrator.rs
@@ -1,36 +1,43 @@
 // Copyright (C) Parity Technologies (UK) Ltd.
-// SPDX-License-Identifier: Apache-2.0
+// This file is part of Polkadot.
 
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// 	http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
 
 //! Autogenerated weights for `runtime_common::identity_migrator`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-11-07, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `sbtb`, CPU: `13th Gen Intel(R) Core(TM) i7-1365U`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// ./target/release/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
 // --chain=rococo-dev
-// --steps=2
-// --repeat=1
+// --steps=50
+// --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::identity_migrator
 // --extrinsic=*
-// --output=./migrator-release.rs
+// --execution=wasm
+// --wasm-execution=compiled
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_identity_migrator.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -44,7 +51,7 @@ use core::marker::PhantomData;
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::identity_migrator::WeightInfo for WeightInfo<T> {
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
-	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7538), added: 10013, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::SubsOf` (r:1 w:1)
 	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:2 w:2)
@@ -63,34 +70,34 @@ impl<T: frame_system::Config> runtime_common::identity_migrator::WeightInfo for
 	/// The range of component `s` is `[0, 100]`.
 	fn reap_identity(r: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `7292 + r * (8 ±0) + s * (32 ±0)`
-		//  Estimated: `11003 + r * (8 ±0) + s * (33 ±0)`
-		// Minimum execution time: 163_756_000 picoseconds.
-		Weight::from_parts(158_982_500, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
-			// Standard Error: 1_143_629
-			.saturating_add(Weight::from_parts(238_675, 0).saturating_mul(r.into()))
-			// Standard Error: 228_725
-			.saturating_add(Weight::from_parts(1_529_645, 0).saturating_mul(s.into()))
+		//  Measured:  `7457 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037 + r * (7 ±0) + s * (32 ±0)`
+		// Minimum execution time: 157_343_000 picoseconds.
+		Weight::from_parts(159_289_236, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
+			// Standard Error: 16_439
+			.saturating_add(Weight::from_parts(224_293, 0).saturating_mul(r.into()))
+			// Standard Error: 3_367
+			.saturating_add(Weight::from_parts(1_383_637, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(8))
-			.saturating_add(T::DbWeight::get().writes(5))
+			.saturating_add(T::DbWeight::get().writes(6))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
-			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
-			.saturating_add(Weight::from_parts(0, 33).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into()))
+			.saturating_add(Weight::from_parts(0, 32).saturating_mul(s.into()))
 	}
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
-	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7538), added: 10013, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::SubsOf` (r:1 w:1)
 	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	fn poke_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `7229`
-		//  Estimated: `11003`
-		// Minimum execution time: 137_570_000 picoseconds.
-		Weight::from_parts(137_570_000, 0)
-			.saturating_add(Weight::from_parts(0, 11003))
+		//  Measured:  `7242`
+		//  Estimated: `11037`
+		// Minimum execution time: 114_384_000 picoseconds.
+		Weight::from_parts(115_741_000, 0)
+			.saturating_add(Weight::from_parts(0, 11037))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_paras_registrar.rs b/polkadot/runtime/rococo/src/weights/runtime_common_paras_registrar.rs
index 0a56562a1a9..e066106e134 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_paras_registrar.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_paras_registrar.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_common::paras_registrar`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::paras_registrar
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_common_paras_registrar.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_paras_registrar.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,175 +50,169 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::paras_registrar`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::paras_registrar::WeightInfo for WeightInfo<T> {
-	/// Storage: Registrar NextFreeParaId (r:1 w:1)
-	/// Proof Skipped: Registrar NextFreeParaId (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Registrar::NextFreeParaId` (r:1 w:1)
+	/// Proof: `Registrar::NextFreeParaId` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn reserve() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `97`
-		//  Estimated: `3562`
-		// Minimum execution time: 29_948_000 picoseconds.
-		Weight::from_parts(30_433_000, 0)
-			.saturating_add(Weight::from_parts(0, 3562))
+		//  Measured:  `96`
+		//  Estimated: `3561`
+		// Minimum execution time: 24_109_000 picoseconds.
+		Weight::from_parts(24_922_000, 0)
+			.saturating_add(Weight::from_parts(0, 3561))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:1)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHashRefs (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CurrentCodeHash (r:0 w:1)
-	/// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpcomingParasGenesis (r:0 w:1)
-	/// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:1 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:1)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:0 w:1)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpcomingParasGenesis` (r:0 w:1)
+	/// Proof: `Paras::UpcomingParasGenesis` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn register() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `616`
-		//  Estimated: `4081`
-		// Minimum execution time: 6_332_113_000 picoseconds.
-		Weight::from_parts(6_407_158_000, 0)
-			.saturating_add(Weight::from_parts(0, 4081))
-			.saturating_add(T::DbWeight::get().reads(8))
+		//  Measured:  `352`
+		//  Estimated: `3817`
+		// Minimum execution time: 7_207_580_000 picoseconds.
+		Weight::from_parts(7_298_567_000, 0)
+			.saturating_add(Weight::from_parts(0, 3817))
+			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:1)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHashRefs (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CurrentCodeHash (r:0 w:1)
-	/// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpcomingParasGenesis (r:0 w:1)
-	/// Proof Skipped: Paras UpcomingParasGenesis (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:1 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:1)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:0 w:1)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpcomingParasGenesis` (r:0 w:1)
+	/// Proof: `Paras::UpcomingParasGenesis` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn force_register() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `533`
-		//  Estimated: `3998`
-		// Minimum execution time: 6_245_403_000 picoseconds.
-		Weight::from_parts(6_289_575_000, 0)
-			.saturating_add(Weight::from_parts(0, 3998))
-			.saturating_add(T::DbWeight::get().reads(8))
+		//  Measured:  `269`
+		//  Estimated: `3734`
+		// Minimum execution time: 7_196_460_000 picoseconds.
+		Weight::from_parts(7_385_729_000, 0)
+			.saturating_add(Weight::from_parts(0, 3734))
+			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:1)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras FutureCodeHash (r:1 w:0)
-	/// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
-	/// Storage: MessageQueue BookStateFor (r:1 w:0)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: Registrar PendingSwap (r:0 w:1)
-	/// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Registrar::Paras` (r:1 w:1)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeHash` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `Registrar::PendingSwap` (r:0 w:1)
+	/// Proof: `Registrar::PendingSwap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn deregister() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `476`
-		//  Estimated: `3941`
-		// Minimum execution time: 49_822_000 picoseconds.
-		Weight::from_parts(50_604_000, 0)
-			.saturating_add(Weight::from_parts(0, 3941))
+		//  Measured:  `499`
+		//  Estimated: `3964`
+		// Minimum execution time: 54_761_000 picoseconds.
+		Weight::from_parts(57_931_000, 0)
+			.saturating_add(Weight::from_parts(0, 3964))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Registrar Paras (r:1 w:0)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:2 w:2)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Registrar PendingSwap (r:1 w:1)
-	/// Proof Skipped: Registrar PendingSwap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Crowdloan Funds (r:2 w:2)
-	/// Proof Skipped: Crowdloan Funds (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Slots Leases (r:2 w:2)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:2 w:2)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::PendingSwap` (r:1 w:1)
+	/// Proof: `Registrar::PendingSwap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Crowdloan::Funds` (r:2 w:2)
+	/// Proof: `Crowdloan::Funds` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Slots::Leases` (r:2 w:2)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn swap() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `780`
-		//  Estimated: `6720`
-		// Minimum execution time: 55_166_000 picoseconds.
-		Weight::from_parts(56_913_000, 0)
-			.saturating_add(Weight::from_parts(0, 6720))
+		//  Measured:  `837`
+		//  Estimated: `6777`
+		// Minimum execution time: 59_564_000 picoseconds.
+		Weight::from_parts(62_910_000, 0)
+			.saturating_add(Weight::from_parts(0, 6777))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
-	/// Storage: Paras FutureCodeHash (r:1 w:1)
-	/// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpgradeRestrictionSignal (r:1 w:1)
-	/// Proof Skipped: Paras UpgradeRestrictionSignal (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras CurrentCodeHash (r:1 w:0)
-	/// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpgradeCooldowns (r:1 w:1)
-	/// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHashRefs (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// The range of component `b` is `[1, 3145728]`.
+	/// Storage: `Paras::FutureCodeHash` (r:1 w:1)
+	/// Proof: `Paras::FutureCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeRestrictionSignal` (r:1 w:1)
+	/// Proof: `Paras::UpgradeRestrictionSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:1 w:0)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeCooldowns` (r:1 w:1)
+	/// Proof: `Paras::UpgradeCooldowns` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:1 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:1)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `b` is `[9, 3145728]`.
 	fn schedule_code_upgrade(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `464`
-		//  Estimated: `3929`
-		// Minimum execution time: 43_650_000 picoseconds.
-		Weight::from_parts(43_918_000, 0)
-			.saturating_add(Weight::from_parts(0, 3929))
-			// Standard Error: 6
-			.saturating_add(Weight::from_parts(2_041, 0).saturating_mul(b.into()))
-			.saturating_add(T::DbWeight::get().reads(10))
+		//  Measured:  `201`
+		//  Estimated: `3666`
+		// Minimum execution time: 33_106_000 picoseconds.
+		Weight::from_parts(33_526_000, 0)
+			.saturating_add(Weight::from_parts(0, 3666))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(2_334, 0).saturating_mul(b.into()))
+			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(7))
 	}
-	/// Storage: Paras Heads (r:0 w:1)
-	/// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1048576]`.
 	fn set_current_head(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_666_000 picoseconds.
-		Weight::from_parts(8_893_000, 0)
+		// Minimum execution time: 5_992_000 picoseconds.
+		Weight::from_parts(12_059_689, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(855, 0).saturating_mul(b.into()))
+			// Standard Error: 0
+			.saturating_add(Weight::from_parts(959, 0).saturating_mul(b.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/runtime_common_slots.rs b/polkadot/runtime/rococo/src/weights/runtime_common_slots.rs
index 23ab1ed3ee0..dd10dbbf1f1 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_common_slots.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_common_slots.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_common::slots`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_common::slots
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_common_slots.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_common_slots.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,86 +50,82 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_common::slots`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_common::slots::WeightInfo for WeightInfo<T> {
-	/// Storage: Slots Leases (r:1 w:1)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Slots::Leases` (r:1 w:1)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_lease() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `287`
-		//  Estimated: `3752`
-		// Minimum execution time: 29_932_000 picoseconds.
-		Weight::from_parts(30_334_000, 0)
-			.saturating_add(Weight::from_parts(0, 3752))
+		//  Measured:  `320`
+		//  Estimated: `3785`
+		// Minimum execution time: 26_570_000 picoseconds.
+		Weight::from_parts(27_619_000, 0)
+			.saturating_add(Weight::from_parts(0, 3785))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
-	/// Storage: Paras Parachains (r:1 w:0)
-	/// Proof Skipped: Paras Parachains (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Slots Leases (r:101 w:100)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:200 w:200)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Registrar Paras (r:100 w:100)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::Parachains` (r:1 w:0)
+	/// Proof: `Paras::Parachains` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Slots::Leases` (r:101 w:100)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:200 w:200)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 100]`.
 	/// The range of component `t` is `[0, 100]`.
 	fn manage_lease_period_start(c: u32, t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `26 + c * (47 ±0) + t * (308 ±0)`
-		//  Estimated: `2800 + c * (2526 ±0) + t * (2789 ±0)`
-		// Minimum execution time: 634_547_000 picoseconds.
-		Weight::from_parts(643_045_000, 0)
-			.saturating_add(Weight::from_parts(0, 2800))
-			// Standard Error: 81_521
-			.saturating_add(Weight::from_parts(2_705_219, 0).saturating_mul(c.into()))
-			// Standard Error: 81_521
-			.saturating_add(Weight::from_parts(11_464_132, 0).saturating_mul(t.into()))
+		//  Measured:  `594 + c * (20 ±0) + t * (234 ±0)`
+		//  Estimated: `4065 + c * (2496 ±0) + t * (2709 ±0)`
+		// Minimum execution time: 729_793_000 picoseconds.
+		Weight::from_parts(740_820_000, 0)
+			.saturating_add(Weight::from_parts(0, 4065))
+			// Standard Error: 88_206
+			.saturating_add(Weight::from_parts(2_793_142, 0).saturating_mul(c.into()))
+			// Standard Error: 88_206
+			.saturating_add(Weight::from_parts(8_933_065, 0).saturating_mul(t.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into())))
-			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(t.into())))
+			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into())))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(t.into())))
-			.saturating_add(Weight::from_parts(0, 2526).saturating_mul(c.into()))
-			.saturating_add(Weight::from_parts(0, 2789).saturating_mul(t.into()))
+			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(t.into())))
+			.saturating_add(Weight::from_parts(0, 2496).saturating_mul(c.into()))
+			.saturating_add(Weight::from_parts(0, 2709).saturating_mul(t.into()))
 	}
-	/// Storage: Slots Leases (r:1 w:1)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: System Account (r:8 w:8)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Slots::Leases` (r:1 w:1)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:8 w:8)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn clear_all_leases() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2759`
+		//  Measured:  `2792`
 		//  Estimated: `21814`
-		// Minimum execution time: 129_756_000 picoseconds.
-		Weight::from_parts(131_810_000, 0)
+		// Minimum execution time: 123_888_000 picoseconds.
+		Weight::from_parts(131_245_000, 0)
 			.saturating_add(Weight::from_parts(0, 21814))
 			.saturating_add(T::DbWeight::get().reads(9))
 			.saturating_add(T::DbWeight::get().writes(9))
 	}
-	/// Storage: Slots Leases (r:1 w:0)
-	/// Proof Skipped: Slots Leases (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:1)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Registrar Paras (r:1 w:1)
-	/// Proof Skipped: Registrar Paras (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Slots::Leases` (r:1 w:0)
+	/// Proof: `Slots::Leases` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:1)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn trigger_onboard() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `707`
-		//  Estimated: `4172`
-		// Minimum execution time: 29_527_000 picoseconds.
-		Weight::from_parts(30_055_000, 0)
-			.saturating_add(Weight::from_parts(0, 4172))
-			.saturating_add(T::DbWeight::get().reads(5))
-			.saturating_add(T::DbWeight::get().writes(3))
+		//  Measured:  `612`
+		//  Estimated: `4077`
+		// Minimum execution time: 27_341_000 picoseconds.
+		Weight::from_parts(28_697_000, 0)
+			.saturating_add(Weight::from_parts(0, 4077))
+			.saturating_add(T::DbWeight::get().reads(4))
+			.saturating_add(T::DbWeight::get().writes(2))
 	}
 }
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs
index ac0f05301b4..653e1009f31 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs
@@ -16,26 +16,28 @@
 
 //! Autogenerated weights for `runtime_parachains::assigner_on_demand`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-08-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-fljshgub-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=runtime_parachains::assigner_on_demand
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot/.git/.artifacts/bench.json
-// --pallet=runtime_parachains::assigner_on_demand
-// --chain=rococo-dev
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -57,13 +59,13 @@ impl<T: frame_system::Config> runtime_parachains::assigner_on_demand::WeightInfo
 	/// The range of component `s` is `[1, 9999]`.
 	fn place_order_keep_alive(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `297 + s * (4 ±0)`
-		//  Estimated: `3762 + s * (4 ±0)`
-		// Minimum execution time: 33_522_000 picoseconds.
-		Weight::from_parts(35_436_835, 0)
-			.saturating_add(Weight::from_parts(0, 3762))
-			// Standard Error: 129
-			.saturating_add(Weight::from_parts(14_041, 0).saturating_mul(s.into()))
+		//  Measured:  `363 + s * (4 ±0)`
+		//  Estimated: `3828 + s * (4 ±0)`
+		// Minimum execution time: 25_298_000 picoseconds.
+		Weight::from_parts(21_486_098, 0)
+			.saturating_add(Weight::from_parts(0, 3828))
+			// Standard Error: 136
+			.saturating_add(Weight::from_parts(13_943, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into()))
@@ -77,13 +79,13 @@ impl<T: frame_system::Config> runtime_parachains::assigner_on_demand::WeightInfo
 	/// The range of component `s` is `[1, 9999]`.
 	fn place_order_allow_death(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `297 + s * (4 ±0)`
-		//  Estimated: `3762 + s * (4 ±0)`
-		// Minimum execution time: 33_488_000 picoseconds.
-		Weight::from_parts(34_848_934, 0)
-			.saturating_add(Weight::from_parts(0, 3762))
-			// Standard Error: 143
-			.saturating_add(Weight::from_parts(14_215, 0).saturating_mul(s.into()))
+		//  Measured:  `363 + s * (4 ±0)`
+		//  Estimated: `3828 + s * (4 ±0)`
+		// Minimum execution time: 25_421_000 picoseconds.
+		Weight::from_parts(21_828_043, 0)
+			.saturating_add(Weight::from_parts(0, 3828))
+			// Standard Error: 133
+			.saturating_add(Weight::from_parts(13_831, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 4).saturating_mul(s.into()))
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs
index ca0575cb1b6..caad090ae15 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs
@@ -17,25 +17,27 @@
 //! Autogenerated weights for `runtime_parachains::configuration`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2024-02-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/production/polkadot
+// ./target/production/polkadot
 // benchmark
 // pallet
+// --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --pallet=runtime_parachains::configuration
 // --extrinsic=*
+// --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=runtime_parachains::configuration
-// --chain=rococo-dev
 // --header=./polkadot/file_header.txt
-// --output=./polkadot/runtime/rococo/src/weights/
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_configuration.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -58,8 +60,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_789_000 picoseconds.
-		Weight::from_parts(8_269_000, 0)
+		// Minimum execution time: 7_689_000 picoseconds.
+		Weight::from_parts(8_089_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -74,8 +76,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_851_000 picoseconds.
-		Weight::from_parts(8_152_000, 0)
+		// Minimum execution time: 7_735_000 picoseconds.
+		Weight::from_parts(8_150_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -90,8 +92,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_960_000 picoseconds.
-		Weight::from_parts(8_276_000, 0)
+		// Minimum execution time: 7_902_000 picoseconds.
+		Weight::from_parts(8_196_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -116,8 +118,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_912_000 picoseconds.
-		Weight::from_parts(8_164_000, 0)
+		// Minimum execution time: 7_634_000 picoseconds.
+		Weight::from_parts(7_983_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -132,8 +134,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 9_782_000 picoseconds.
-		Weight::from_parts(10_373_000, 0)
+		// Minimum execution time: 9_580_000 picoseconds.
+		Weight::from_parts(9_989_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -148,8 +150,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_870_000 picoseconds.
-		Weight::from_parts(8_274_000, 0)
+		// Minimum execution time: 7_787_000 picoseconds.
+		Weight::from_parts(8_008_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -164,8 +166,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 9_960_000 picoseconds.
-		Weight::from_parts(10_514_000, 0)
+		// Minimum execution time: 9_557_000 picoseconds.
+		Weight::from_parts(9_994_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -180,8 +182,8 @@ impl<T: frame_system::Config> runtime_parachains::configuration::WeightInfo for
 		// Proof Size summary in bytes:
 		//  Measured:  `151`
 		//  Estimated: `1636`
-		// Minimum execution time: 7_913_000 picoseconds.
-		Weight::from_parts(8_338_000, 0)
+		// Minimum execution time: 7_775_000 picoseconds.
+		Weight::from_parts(7_989_000, 0)
 			.saturating_add(Weight::from_parts(0, 1636))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_disputes.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_disputes.rs
index 63a8c3addc7..cf1aa36e10e 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_disputes.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_disputes.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_parachains::disputes`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::disputes
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_disputes.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_disputes.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,14 +50,14 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::disputes`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::disputes::WeightInfo for WeightInfo<T> {
-	/// Storage: ParasDisputes Frozen (r:0 w:1)
-	/// Proof Skipped: ParasDisputes Frozen (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ParasDisputes::Frozen` (r:0 w:1)
+	/// Proof: `ParasDisputes::Frozen` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn force_unfreeze() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_937_000 picoseconds.
-		Weight::from_parts(3_082_000, 0)
+		// Minimum execution time: 1_855_000 picoseconds.
+		Weight::from_parts(2_015_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
index 417820e6627..a3b912491e5 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_parachains::hrmp`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::hrmp
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_hrmp.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_hrmp.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,105 +50,97 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::hrmp`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInfo<T> {
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_init_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `704`
-		//  Estimated: `6644`
-		// Minimum execution time: 41_564_000 picoseconds.
-		Weight::from_parts(42_048_000, 0)
-			.saturating_add(Weight::from_parts(0, 6644))
-			.saturating_add(T::DbWeight::get().reads(10))
+		//  Measured:  `488`
+		//  Estimated: `3953`
+		// Minimum execution time: 34_911_000 picoseconds.
+		Weight::from_parts(35_762_000, 0)
+			.saturating_add(Weight::from_parts(0, 3953))
+			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:1 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_accept_open_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
-		//  Estimated: `4401`
-		// Minimum execution time: 43_570_000 picoseconds.
-		Weight::from_parts(44_089_000, 0)
-			.saturating_add(Weight::from_parts(0, 4401))
-			.saturating_add(T::DbWeight::get().reads(7))
+		//  Measured:  `478`
+		//  Estimated: `3943`
+		// Minimum execution time: 31_483_000 picoseconds.
+		Weight::from_parts(32_230_000, 0)
+			.saturating_add(Weight::from_parts(0, 3943))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn hrmp_close_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `807`
-		//  Estimated: `4272`
-		// Minimum execution time: 36_594_000 picoseconds.
-		Weight::from_parts(37_090_000, 0)
-			.saturating_add(Weight::from_parts(0, 4272))
-			.saturating_add(T::DbWeight::get().reads(6))
+		//  Measured:  `591`
+		//  Estimated: `4056`
+		// Minimum execution time: 32_153_000 picoseconds.
+		Weight::from_parts(32_982_000, 0)
+			.saturating_add(Weight::from_parts(0, 4056))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:254 w:254)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:254)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:0 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:254 w:254)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:254)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 127]`.
 	/// The range of component `e` is `[0, 127]`.
 	fn force_clean_hrmp(i: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `264 + e * (100 ±0) + i * (100 ±0)`
-		//  Estimated: `3726 + e * (2575 ±0) + i * (2575 ±0)`
-		// Minimum execution time: 1_085_140_000 picoseconds.
-		Weight::from_parts(1_100_901_000, 0)
-			.saturating_add(Weight::from_parts(0, 3726))
-			// Standard Error: 98_982
-			.saturating_add(Weight::from_parts(3_229_112, 0).saturating_mul(i.into()))
-			// Standard Error: 98_982
-			.saturating_add(Weight::from_parts(3_210_944, 0).saturating_mul(e.into()))
+		//  Measured:  `297 + e * (100 ±0) + i * (100 ±0)`
+		//  Estimated: `3759 + e * (2575 ±0) + i * (2575 ±0)`
+		// Minimum execution time: 1_240_769_000 picoseconds.
+		Weight::from_parts(1_249_285_000, 0)
+			.saturating_add(Weight::from_parts(0, 3759))
+			// Standard Error: 112_346
+			.saturating_add(Weight::from_parts(3_449_114, 0).saturating_mul(i.into()))
+			// Standard Error: 112_346
+			.saturating_add(Weight::from_parts(3_569_184, 0).saturating_mul(e.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(e.into())))
@@ -155,139 +150,139 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(e.into()))
 			.saturating_add(Weight::from_parts(0, 2575).saturating_mul(i.into()))
 	}
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras ParaLifecycles (r:256 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:256 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_open(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `779 + c * (136 ±0)`
-		//  Estimated: `2234 + c * (5086 ±0)`
-		// Minimum execution time: 10_497_000 picoseconds.
-		Weight::from_parts(6_987_455, 0)
-			.saturating_add(Weight::from_parts(0, 2234))
-			// Standard Error: 18_540
-			.saturating_add(Weight::from_parts(18_788_534, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(2))
+		//  Measured:  `525 + c * (136 ±0)`
+		//  Estimated: `1980 + c * (5086 ±0)`
+		// Minimum execution time: 6_026_000 picoseconds.
+		Weight::from_parts(6_257_000, 0)
+			.saturating_add(Weight::from_parts(0, 1980))
+			// Standard Error: 9_732
+			.saturating_add(Weight::from_parts(21_049_890, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 5086).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpCloseChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpCloseChannelRequests (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpCloseChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannelContents (r:0 w:128)
-	/// Proof Skipped: Hrmp HrmpChannelContents (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpCloseChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpCloseChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpCloseChannelRequests` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpCloseChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelContents` (r:0 w:128)
+	/// Proof: `Hrmp::HrmpChannelContents` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn force_process_hrmp_close(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `335 + c * (124 ±0)`
-		//  Estimated: `1795 + c * (2600 ±0)`
-		// Minimum execution time: 6_575_000 picoseconds.
-		Weight::from_parts(1_228_642, 0)
-			.saturating_add(Weight::from_parts(0, 1795))
-			// Standard Error: 14_826
-			.saturating_add(Weight::from_parts(11_604_038, 0).saturating_mul(c.into()))
+		//  Measured:  `368 + c * (124 ±0)`
+		//  Estimated: `1828 + c * (2600 ±0)`
+		// Minimum execution time: 4_991_000 picoseconds.
+		Weight::from_parts(984_758, 0)
+			.saturating_add(Weight::from_parts(0, 1828))
+			// Standard Error: 11_918
+			.saturating_add(Weight::from_parts(13_018_813, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2600).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn hrmp_cancel_open_request(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1026 + c * (13 ±0)`
-		//  Estimated: `4295 + c * (15 ±0)`
-		// Minimum execution time: 22_301_000 picoseconds.
-		Weight::from_parts(26_131_473, 0)
-			.saturating_add(Weight::from_parts(0, 4295))
-			// Standard Error: 830
-			.saturating_add(Weight::from_parts(49_448, 0).saturating_mul(c.into()))
+		//  Measured:  `1059 + c * (13 ±0)`
+		//  Estimated: `4328 + c * (15 ±0)`
+		// Minimum execution time: 17_299_000 picoseconds.
+		Weight::from_parts(27_621_478, 0)
+			.saturating_add(Weight::from_parts(0, 4328))
+			// Standard Error: 2_527
+			.saturating_add(Weight::from_parts(121_149, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 15).saturating_mul(c.into()))
 	}
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:128 w:128)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:128 w:128)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[0, 128]`.
 	fn clean_open_channel_requests(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243 + c * (63 ±0)`
-		//  Estimated: `1722 + c * (2538 ±0)`
-		// Minimum execution time: 5_234_000 picoseconds.
-		Weight::from_parts(7_350_270, 0)
-			.saturating_add(Weight::from_parts(0, 1722))
-			// Standard Error: 3_105
-			.saturating_add(Weight::from_parts(2_981_935, 0).saturating_mul(c.into()))
+		//  Measured:  `276 + c * (63 ±0)`
+		//  Estimated: `1755 + c * (2538 ±0)`
+		// Minimum execution time: 3_764_000 picoseconds.
+		Weight::from_parts(5_935_301, 0)
+			.saturating_add(Weight::from_parts(0, 1755))
+			// Standard Error: 3_761
+			.saturating_add(Weight::from_parts(3_290_277, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2538).saturating_mul(c.into()))
 	}
-	/// Storage: Paras ParaLifecycles (r:2 w:0)
-	/// Proof Skipped: Paras ParaLifecycles (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequests (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequests (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpChannels (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpChannels (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpEgressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpEgressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpOpenChannelRequestsList (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpOpenChannelRequestsList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueues (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Dmp DownwardMessageQueueHeads (r:2 w:2)
-	/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpIngressChannelsIndex (r:1 w:0)
-	/// Proof Skipped: Hrmp HrmpIngressChannelsIndex (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Hrmp HrmpAcceptedChannelRequestCount (r:1 w:1)
-	/// Proof Skipped: Hrmp HrmpAcceptedChannelRequestCount (max_values: None, max_size: None, mode: Measured)
-	fn force_open_hrmp_channel(_c: u32, ) -> Weight {
+	/// Storage: `Hrmp::HrmpOpenChannelRequests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestsList` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestsList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpOpenChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpOpenChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannels` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpEgressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpEgressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueueHeads` (r:2 w:2)
+	/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpIngressChannelsIndex` (r:1 w:0)
+	/// Proof: `Hrmp::HrmpIngressChannelsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpAcceptedChannelRequestCount` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `c` is `[0, 1]`.
+	fn force_open_hrmp_channel(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `704`
-		//  Estimated: `6644`
-		// Minimum execution time: 55_611_000 picoseconds.
-		Weight::from_parts(56_488_000, 0)
-			.saturating_add(Weight::from_parts(0, 6644))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `488 + c * (235 ±0)`
+		//  Estimated: `6428 + c * (235 ±0)`
+		// Minimum execution time: 49_506_000 picoseconds.
+		Weight::from_parts(51_253_075, 0)
+			.saturating_add(Weight::from_parts(0, 6428))
+			// Standard Error: 144_082
+			.saturating_add(Weight::from_parts(12_862_224, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
+			.saturating_add(Weight::from_parts(0, 235).saturating_mul(c.into()))
 	}
 	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
 	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -311,11 +306,11 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 	/// Proof: `Hrmp::HrmpAcceptedChannelRequestCount` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn establish_system_channel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
-		//  Estimated: `6357`
-		// Minimum execution time: 629_674_000 picoseconds.
-		Weight::from_parts(640_174_000, 0)
-			.saturating_add(Weight::from_parts(0, 6357))
+		//  Measured:  `488`
+		//  Estimated: `6428`
+		// Minimum execution time: 50_016_000 picoseconds.
+		Weight::from_parts(50_933_000, 0)
+			.saturating_add(Weight::from_parts(0, 6428))
 			.saturating_add(T::DbWeight::get().reads(12))
 			.saturating_add(T::DbWeight::get().writes(8))
 	}
@@ -323,11 +318,11 @@ impl<T: frame_system::Config> runtime_parachains::hrmp::WeightInfo for WeightInf
 	/// Proof: `Hrmp::HrmpChannels` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn poke_channel_deposits() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `263`
-		//  Estimated: `3728`
-		// Minimum execution time: 173_371_000 picoseconds.
-		Weight::from_parts(175_860_000, 0)
-			.saturating_add(Weight::from_parts(0, 3728))
+		//  Measured:  `296`
+		//  Estimated: `3761`
+		// Minimum execution time: 12_280_000 picoseconds.
+		Weight::from_parts(12_863_000, 0)
+			.saturating_add(Weight::from_parts(0, 3761))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_inclusion.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_inclusion.rs
index a121ad774ce..b9ec7565bd5 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_inclusion.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_inclusion.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_parachains::inclusion`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::inclusion
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_inclusion.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_inclusion.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,27 +50,25 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::inclusion`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::inclusion::WeightInfo for WeightInfo<T> {
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(55), added: 2530, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:999)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(32818), added: 35293, mode: MaxEncodedLen)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
-	/// Storage: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
-	/// Proof Skipped: unknown `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:999)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(32818), added: 35293, mode: `MaxEncodedLen`)
+	/// Storage: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a72656c61795f64697370617463685f71756575655f72656d61696e696e675f` (r:0 w:1)
+	/// Storage: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0xf5207f03cfdce586301014700e2c2593fad157e461d71fd4c1f936839a5f1f3e` (r:0 w:1)
 	/// The range of component `i` is `[1, 1000]`.
 	fn receive_upward_messages(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `33280`
+		//  Measured:  `32993`
 		//  Estimated: `36283`
-		// Minimum execution time: 71_094_000 picoseconds.
-		Weight::from_parts(71_436_000, 0)
+		// Minimum execution time: 72_675_000 picoseconds.
+		Weight::from_parts(73_290_000, 0)
 			.saturating_add(Weight::from_parts(0, 36283))
-			// Standard Error: 22_149
-			.saturating_add(Weight::from_parts(51_495_472, 0).saturating_mul(i.into()))
-			.saturating_add(T::DbWeight::get().reads(3))
+			// Standard Error: 16_067
+			.saturating_add(Weight::from_parts(57_735_739, 0).saturating_mul(i.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_initializer.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_initializer.rs
index 5c627507dfb..e8c554610c9 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_initializer.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_initializer.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_parachains::initializer`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::initializer
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_initializer.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_initializer.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,18 +50,18 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::initializer`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::initializer::WeightInfo for WeightInfo<T> {
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `d` is `[0, 65536]`.
 	fn force_approve(d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + d * (11 ±0)`
 		//  Estimated: `1480 + d * (11 ±0)`
-		// Minimum execution time: 3_771_000 picoseconds.
-		Weight::from_parts(6_491_437, 0)
+		// Minimum execution time: 2_634_000 picoseconds.
+		Weight::from_parts(2_728_000, 0)
 			.saturating_add(Weight::from_parts(0, 1480))
-			// Standard Error: 9
-			.saturating_add(Weight::from_parts(1_356, 0).saturating_mul(d.into()))
+			// Standard Error: 19
+			.saturating_add(Weight::from_parts(2_499, 0).saturating_mul(d.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 11).saturating_mul(d.into()))
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_paras.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_paras.rs
index dfd95006dc7..af26bfc9ae9 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_paras.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_paras.rs
@@ -16,11 +16,11 @@
 
 //! Autogenerated weights for `runtime_parachains::paras`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
 // ./target/production/polkadot
@@ -29,12 +29,15 @@
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::paras
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --header=./file_header.txt
-// --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_paras.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -47,247 +50,248 @@ use core::marker::PhantomData;
 /// Weight functions for `runtime_parachains::paras`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::paras::WeightInfo for WeightInfo<T> {
-	/// Storage: Paras CurrentCodeHash (r:1 w:1)
-	/// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHashRefs (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras PastCodeMeta (r:1 w:1)
-	/// Proof Skipped: Paras PastCodeMeta (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras PastCodePruning (r:1 w:1)
-	/// Proof Skipped: Paras PastCodePruning (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PastCodeHash (r:0 w:1)
-	/// Proof Skipped: Paras PastCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:0 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::CurrentCodeHash` (r:1 w:1)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:1)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PastCodeMeta` (r:1 w:1)
+	/// Proof: `Paras::PastCodeMeta` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PastCodePruning` (r:1 w:1)
+	/// Proof: `Paras::PastCodePruning` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PastCodeHash` (r:0 w:1)
+	/// Proof: `Paras::PastCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:0 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 3145728]`.
 	fn force_set_current_code(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `8309`
 		//  Estimated: `11774`
-		// Minimum execution time: 31_941_000 picoseconds.
-		Weight::from_parts(32_139_000, 0)
+		// Minimum execution time: 27_488_000 picoseconds.
+		Weight::from_parts(27_810_000, 0)
 			.saturating_add(Weight::from_parts(0, 11774))
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(2_011, 0).saturating_mul(c.into()))
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(2_189, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(6))
 	}
-	/// Storage: Paras Heads (r:0 w:1)
-	/// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `s` is `[1, 1048576]`.
 	fn force_set_current_head(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_275_000 picoseconds.
-		Weight::from_parts(8_321_000, 0)
+		// Minimum execution time: 5_793_000 picoseconds.
+		Weight::from_parts(7_987_606, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(858, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(971, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	// Storage: Paras Heads (r:0 w:1)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn force_set_most_recent_context() -> Weight {
-		Weight::from_parts(10_155_000, 0)
-			// Standard Error: 0
-			.saturating_add(T::DbWeight::get().writes(1 as u64))
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 2_733_000 picoseconds.
+		Weight::from_parts(2_954_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras FutureCodeHash (r:1 w:1)
-	/// Proof Skipped: Paras FutureCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CurrentCodeHash (r:1 w:0)
-	/// Proof Skipped: Paras CurrentCodeHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpgradeCooldowns (r:1 w:1)
-	/// Proof Skipped: Paras UpgradeCooldowns (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHashRefs (r:1 w:1)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpgradeRestrictionSignal (r:0 w:1)
-	/// Proof Skipped: Paras UpgradeRestrictionSignal (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::FutureCodeHash` (r:1 w:1)
+	/// Proof: `Paras::FutureCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:1 w:0)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeCooldowns` (r:1 w:1)
+	/// Proof: `Paras::UpgradeCooldowns` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:1 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:1)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeRestrictionSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeRestrictionSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 3145728]`.
 	fn force_schedule_code_upgrade(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `8715`
-		//  Estimated: `12180`
-		// Minimum execution time: 49_923_000 picoseconds.
-		Weight::from_parts(50_688_000, 0)
-			.saturating_add(Weight::from_parts(0, 12180))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_976, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(9))
-			.saturating_add(T::DbWeight::get().writes(7))
+		//  Measured:  `8452`
+		//  Estimated: `11917`
+		// Minimum execution time: 6_072_000 picoseconds.
+		Weight::from_parts(6_128_000, 0)
+			.saturating_add(Weight::from_parts(0, 11917))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(2_334, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(7))
+			.saturating_add(T::DbWeight::get().writes(6))
 	}
-	/// Storage: Paras FutureCodeUpgrades (r:1 w:0)
-	/// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras Heads (r:0 w:1)
-	/// Proof Skipped: Paras Heads (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras UpgradeGoAheadSignal (r:0 w:1)
-	/// Proof Skipped: Paras UpgradeGoAheadSignal (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeGoAheadSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeGoAheadSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `s` is `[1, 1048576]`.
 	fn force_note_new_head(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `95`
-		//  Estimated: `3560`
-		// Minimum execution time: 14_408_000 picoseconds.
-		Weight::from_parts(14_647_000, 0)
-			.saturating_add(Weight::from_parts(0, 3560))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(858, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(1))
-			.saturating_add(T::DbWeight::get().writes(2))
+		//  Measured:  `163`
+		//  Estimated: `3628`
+		// Minimum execution time: 15_166_000 picoseconds.
+		Weight::from_parts(21_398_053, 0)
+			.saturating_add(Weight::from_parts(0, 3628))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(976, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(2))
+			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn force_queue_action() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4288`
-		//  Estimated: `7753`
-		// Minimum execution time: 20_009_000 picoseconds.
-		Weight::from_parts(20_518_000, 0)
-			.saturating_add(Weight::from_parts(0, 7753))
+		//  Measured:  `4312`
+		//  Estimated: `7777`
+		// Minimum execution time: 16_345_000 picoseconds.
+		Weight::from_parts(16_712_000, 0)
+			.saturating_add(Weight::from_parts(0, 7777))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 3145728]`.
 	fn add_trusted_validation_code(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `946`
-		//  Estimated: `4411`
-		// Minimum execution time: 80_626_000 picoseconds.
-		Weight::from_parts(52_721_755, 0)
-			.saturating_add(Weight::from_parts(0, 4411))
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_443, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(5))
+		//  Measured:  `683`
+		//  Estimated: `4148`
+		// Minimum execution time: 78_076_000 picoseconds.
+		Weight::from_parts(123_193_814, 0)
+			.saturating_add(Weight::from_parts(0, 4148))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_770, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: Paras CodeByHashRefs (r:1 w:0)
-	/// Proof Skipped: Paras CodeByHashRefs (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras CodeByHash (r:0 w:1)
-	/// Proof Skipped: Paras CodeByHash (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Paras::CodeByHashRefs` (r:1 w:0)
+	/// Proof: `Paras::CodeByHashRefs` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CodeByHash` (r:0 w:1)
+	/// Proof: `Paras::CodeByHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn poke_unused_validation_code() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `28`
 		//  Estimated: `3493`
-		// Minimum execution time: 6_692_000 picoseconds.
-		Weight::from_parts(7_009_000, 0)
+		// Minimum execution time: 5_184_000 picoseconds.
+		Weight::from_parts(5_430_000, 0)
 			.saturating_add(Weight::from_parts(0, 3493))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn include_pvf_check_statement() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `26682`
-		//  Estimated: `30147`
-		// Minimum execution time: 87_994_000 picoseconds.
-		Weight::from_parts(89_933_000, 0)
-			.saturating_add(Weight::from_parts(0, 30147))
+		//  Measured:  `26706`
+		//  Estimated: `30171`
+		// Minimum execution time: 102_995_000 picoseconds.
+		Weight::from_parts(108_977_000, 0)
+			.saturating_add(Weight::from_parts(0, 30171))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras UpcomingUpgrades (r:1 w:1)
-	/// Proof Skipped: Paras UpcomingUpgrades (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras FutureCodeUpgrades (r:0 w:100)
-	/// Proof Skipped: Paras FutureCodeUpgrades (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpcomingUpgrades` (r:1 w:1)
+	/// Proof: `Paras::UpcomingUpgrades` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:0 w:100)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn include_pvf_check_statement_finalize_upgrade_accept() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `27523`
-		//  Estimated: `30988`
-		// Minimum execution time: 783_222_000 picoseconds.
-		Weight::from_parts(794_959_000, 0)
-			.saturating_add(Weight::from_parts(0, 30988))
-			.saturating_add(T::DbWeight::get().reads(7))
+		//  Measured:  `27360`
+		//  Estimated: `30825`
+		// Minimum execution time: 709_433_000 picoseconds.
+		Weight::from_parts(725_074_000, 0)
+			.saturating_add(Weight::from_parts(0, 30825))
+			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(104))
 	}
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn include_pvf_check_statement_finalize_upgrade_reject() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `27214`
-		//  Estimated: `30679`
-		// Minimum execution time: 87_424_000 picoseconds.
-		Weight::from_parts(88_737_000, 0)
-			.saturating_add(Weight::from_parts(0, 30679))
+		//  Measured:  `27338`
+		//  Estimated: `30803`
+		// Minimum execution time: 98_973_000 picoseconds.
+		Weight::from_parts(104_715_000, 0)
+			.saturating_add(Weight::from_parts(0, 30803))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteList (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteList (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Configuration ActiveConfig (r:1 w:0)
-	/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras ActionsQueue (r:1 w:1)
-	/// Proof Skipped: Paras ActionsQueue (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteList` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteList` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ActionsQueue` (r:1 w:1)
+	/// Proof: `Paras::ActionsQueue` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn include_pvf_check_statement_finalize_onboarding_accept() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `26991`
-		//  Estimated: `30456`
-		// Minimum execution time: 612_485_000 picoseconds.
-		Weight::from_parts(621_670_000, 0)
-			.saturating_add(Weight::from_parts(0, 30456))
-			.saturating_add(T::DbWeight::get().reads(6))
+		//  Measured:  `26728`
+		//  Estimated: `30193`
+		// Minimum execution time: 550_958_000 picoseconds.
+		Weight::from_parts(564_497_000, 0)
+			.saturating_add(Weight::from_parts(0, 30193))
+			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
-	/// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	/// Proof Skipped: ParasShared ActiveValidatorKeys (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	/// Proof Skipped: ParasShared CurrentSessionIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Paras PvfActiveVoteMap (r:1 w:1)
-	/// Proof Skipped: Paras PvfActiveVoteMap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::PvfActiveVoteMap` (r:1 w:1)
+	/// Proof: `Paras::PvfActiveVoteMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn include_pvf_check_statement_finalize_onboarding_reject() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `26682`
-		//  Estimated: `30147`
-		// Minimum execution time: 86_673_000 picoseconds.
-		Weight::from_parts(87_424_000, 0)
-			.saturating_add(Weight::from_parts(0, 30147))
+		//  Measured:  `26706`
+		//  Estimated: `30171`
+		// Minimum execution time: 97_088_000 picoseconds.
+		Weight::from_parts(103_617_000, 0)
+			.saturating_add(Weight::from_parts(0, 30171))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs
index a102d1903b2..374927f8470 100644
--- a/polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs
+++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs
@@ -13,161 +13,334 @@
 
 // You should have received a copy of the GNU General Public License
 // along with Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
 //! Autogenerated weights for `runtime_parachains::paras_inherent`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2021-11-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 128
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-02-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
 
 // Executed Command:
-// target/release/polkadot
+// ./target/production/polkadot
 // benchmark
+// pallet
 // --chain=rococo-dev
 // --steps=50
 // --repeat=20
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --pallet=runtime_parachains::paras_inherent
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
-// --heap-pages=4096
-// --output=./runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs
-// --header=./file_header.txt
+// --header=./polkadot/file_header.txt
+// --output=./polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
 #![allow(unused_imports)]
+#![allow(missing_docs)]
 
 use frame_support::{traits::Get, weights::Weight};
-use sp_std::marker::PhantomData;
+use core::marker::PhantomData;
 
 /// Weight functions for `runtime_parachains::paras_inherent`.
 pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> runtime_parachains::paras_inherent::WeightInfo for WeightInfo<T> {
-	// Storage: ParaInherent Included (r:1 w:1)
-	// Storage: System ParentHash (r:1 w:0)
-	// Storage: ParaScheduler AvailabilityCores (r:1 w:1)
-	// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	// Storage: Configuration ActiveConfig (r:1 w:0)
-	// Storage: ParaSessionInfo Sessions (r:1 w:0)
-	// Storage: ParasDisputes Disputes (r:1 w:1)
-	// Storage: ParasDisputes Included (r:1 w:1)
-	// Storage: ParasDisputes SpamSlots (r:1 w:1)
-	// Storage: ParasDisputes Frozen (r:1 w:0)
-	// Storage: ParaInclusion PendingAvailability (r:2 w:1)
-	// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	// Storage: Paras Parachains (r:1 w:0)
-	// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1)
-	// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	// Storage: Hrmp HrmpChannelDigests (r:1 w:1)
-	// Storage: Paras FutureCodeUpgrades (r:1 w:0)
-	// Storage: ParaScheduler SessionStartBlock (r:1 w:0)
-	// Storage: ParaScheduler ParathreadQueue (r:1 w:1)
-	// Storage: ParaScheduler Scheduled (r:1 w:1)
-	// Storage: ParaScheduler ValidatorGroups (r:1 w:0)
-	// Storage: Ump NeedsDispatch (r:1 w:1)
-	// Storage: Ump NextDispatchRoundStartWith (r:1 w:1)
-	// Storage: ParaInherent OnChainVotes (r:0 w:1)
-	// Storage: Hrmp HrmpWatermarks (r:0 w:1)
-	// Storage: Paras Heads (r:0 w:1)
+	/// Storage: `ParaInherent::Included` (r:1 w:1)
+	/// Proof: `ParaInherent::Included` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::AllowedRelayParents` (r:1 w:1)
+	/// Proof: `ParasShared::AllowedRelayParents` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::AvailabilityCores` (r:1 w:1)
+	/// Proof: `ParaScheduler::AvailabilityCores` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Babe::AuthorVrfRandomness` (r:1 w:0)
+	/// Proof: `Babe::AuthorVrfRandomness` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `ParaSessionInfo::Sessions` (r:1 w:0)
+	/// Proof: `ParaSessionInfo::Sessions` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Disputes` (r:1 w:1)
+	/// Proof: `ParasDisputes::Disputes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::BackersOnDisputes` (r:1 w:1)
+	/// Proof: `ParasDisputes::BackersOnDisputes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Included` (r:1 w:1)
+	/// Proof: `ParasDisputes::Included` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInherent::OnChainVotes` (r:1 w:1)
+	/// Proof: `ParaInherent::OnChainVotes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Frozen` (r:1 w:0)
+	/// Proof: `ParasDisputes::Frozen` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailability` (r:2 w:1)
+	/// Proof: `ParaInclusion::PendingAvailability` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailabilityCommitments` (r:1 w:1)
+	/// Proof: `ParaInclusion::PendingAvailabilityCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:1)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelDigests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::SessionStartBlock` (r:1 w:0)
+	/// Proof: `ParaScheduler::SessionStartBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ValidatorGroups` (r:1 w:0)
+	/// Proof: `ParaScheduler::ValidatorGroups` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ClaimQueue` (r:1 w:1)
+	/// Proof: `ParaScheduler::ClaimQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `CoretimeAssignmentProvider::CoreDescriptors` (r:1 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreDescriptors` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorIndices` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::DisabledValidators` (r:1 w:0)
+	/// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpWatermarks` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpWatermarks` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeGoAheadSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeGoAheadSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `v` is `[10, 200]`.
 	fn enter_variable_disputes(v: u32, ) -> Weight {
-		Weight::from_parts(352_590_000 as u64, 0)
-			// Standard Error: 13_000
-			.saturating_add(Weight::from_parts(49_254_000 as u64, 0).saturating_mul(v as u64))
-			.saturating_add(T::DbWeight::get().reads(24 as u64))
-			.saturating_add(T::DbWeight::get().writes(16 as u64))
+		// Proof Size summary in bytes:
+		//  Measured:  `67819`
+		//  Estimated: `73759 + v * (23 ±0)`
+		// Minimum execution time: 874_229_000 picoseconds.
+		Weight::from_parts(486_359_072, 0)
+			.saturating_add(Weight::from_parts(0, 73759))
+			// Standard Error: 19_197
+			.saturating_add(Weight::from_parts(41_842_161, 0).saturating_mul(v.into()))
+			.saturating_add(T::DbWeight::get().reads(26))
+			.saturating_add(T::DbWeight::get().writes(16))
+			.saturating_add(Weight::from_parts(0, 23).saturating_mul(v.into()))
 	}
-	// Storage: ParaInherent Included (r:1 w:1)
-	// Storage: System ParentHash (r:1 w:0)
-	// Storage: ParaScheduler AvailabilityCores (r:1 w:1)
-	// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	// Storage: Configuration ActiveConfig (r:1 w:0)
-	// Storage: ParasDisputes Frozen (r:1 w:0)
-	// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	// Storage: Paras Parachains (r:1 w:0)
-	// Storage: ParaInclusion PendingAvailability (r:2 w:1)
-	// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1)
-	// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	// Storage: Hrmp HrmpChannelDigests (r:1 w:1)
-	// Storage: Paras FutureCodeUpgrades (r:1 w:0)
-	// Storage: ParasDisputes Disputes (r:1 w:0)
-	// Storage: ParaScheduler SessionStartBlock (r:1 w:0)
-	// Storage: ParaScheduler ParathreadQueue (r:1 w:1)
-	// Storage: ParaScheduler Scheduled (r:1 w:1)
-	// Storage: ParaScheduler ValidatorGroups (r:1 w:0)
-	// Storage: Ump NeedsDispatch (r:1 w:1)
-	// Storage: Ump NextDispatchRoundStartWith (r:1 w:1)
-	// Storage: ParaInclusion AvailabilityBitfields (r:0 w:1)
-	// Storage: ParaInherent OnChainVotes (r:0 w:1)
-	// Storage: ParasDisputes Included (r:0 w:1)
-	// Storage: Hrmp HrmpWatermarks (r:0 w:1)
-	// Storage: Paras Heads (r:0 w:1)
+	/// Storage: `ParaInherent::Included` (r:1 w:1)
+	/// Proof: `ParaInherent::Included` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::AllowedRelayParents` (r:1 w:1)
+	/// Proof: `ParasShared::AllowedRelayParents` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::AvailabilityCores` (r:1 w:1)
+	/// Proof: `ParaScheduler::AvailabilityCores` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Babe::AuthorVrfRandomness` (r:1 w:0)
+	/// Proof: `Babe::AuthorVrfRandomness` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `ParaInherent::OnChainVotes` (r:1 w:1)
+	/// Proof: `ParaInherent::OnChainVotes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Frozen` (r:1 w:0)
+	/// Proof: `ParasDisputes::Frozen` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailability` (r:2 w:1)
+	/// Proof: `ParaInclusion::PendingAvailability` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailabilityCommitments` (r:1 w:1)
+	/// Proof: `ParaInclusion::PendingAvailabilityCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:1)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelDigests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Disputes` (r:1 w:0)
+	/// Proof: `ParasDisputes::Disputes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::SessionStartBlock` (r:1 w:0)
+	/// Proof: `ParaScheduler::SessionStartBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ValidatorGroups` (r:1 w:0)
+	/// Proof: `ParaScheduler::ValidatorGroups` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ClaimQueue` (r:1 w:1)
+	/// Proof: `ParaScheduler::ClaimQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `CoretimeAssignmentProvider::CoreDescriptors` (r:1 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreDescriptors` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorIndices` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::DisabledValidators` (r:1 w:0)
+	/// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::AvailabilityBitfields` (r:0 w:1)
+	/// Proof: `ParaInclusion::AvailabilityBitfields` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Included` (r:0 w:1)
+	/// Proof: `ParasDisputes::Included` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpWatermarks` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpWatermarks` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeGoAheadSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeGoAheadSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn enter_bitfields() -> Weight {
-		Weight::from_parts(299_878_000 as u64, 0)
-			.saturating_add(T::DbWeight::get().reads(21 as u64))
-			.saturating_add(T::DbWeight::get().writes(15 as u64))
+		// Proof Size summary in bytes:
+		//  Measured:  `42791`
+		//  Estimated: `48731`
+		// Minimum execution time: 428_757_000 picoseconds.
+		Weight::from_parts(449_681_000, 0)
+			.saturating_add(Weight::from_parts(0, 48731))
+			.saturating_add(T::DbWeight::get().reads(24))
+			.saturating_add(T::DbWeight::get().writes(17))
 	}
-	// Storage: ParaInherent Included (r:1 w:1)
-	// Storage: System ParentHash (r:1 w:0)
-	// Storage: ParaScheduler AvailabilityCores (r:1 w:1)
-	// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	// Storage: Configuration ActiveConfig (r:1 w:0)
-	// Storage: ParasDisputes Frozen (r:1 w:0)
-	// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	// Storage: Paras Parachains (r:1 w:0)
-	// Storage: ParaInclusion PendingAvailability (r:2 w:1)
-	// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1)
-	// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	// Storage: Hrmp HrmpChannelDigests (r:1 w:1)
-	// Storage: Paras FutureCodeUpgrades (r:1 w:0)
-	// Storage: ParasDisputes Disputes (r:2 w:0)
-	// Storage: ParaScheduler SessionStartBlock (r:1 w:0)
-	// Storage: ParaScheduler ParathreadQueue (r:1 w:1)
-	// Storage: ParaScheduler Scheduled (r:1 w:1)
-	// Storage: ParaScheduler ValidatorGroups (r:1 w:0)
-	// Storage: Paras PastCodeMeta (r:1 w:0)
-	// Storage: Paras CurrentCodeHash (r:1 w:0)
-	// Storage: Ump RelayDispatchQueueSize (r:1 w:0)
-	// Storage: Ump NeedsDispatch (r:1 w:1)
-	// Storage: Ump NextDispatchRoundStartWith (r:1 w:1)
-	// Storage: ParaInherent OnChainVotes (r:0 w:1)
-	// Storage: ParasDisputes Included (r:0 w:1)
-	// Storage: Hrmp HrmpWatermarks (r:0 w:1)
-	// Storage: Paras Heads (r:0 w:1)
-	fn enter_backed_candidates_variable(_v: u32) -> Weight {
-		Weight::from_parts(442_472_000 as u64, 0)
-			.saturating_add(T::DbWeight::get().reads(25 as u64))
-			.saturating_add(T::DbWeight::get().writes(14 as u64))
+	/// Storage: `ParaInherent::Included` (r:1 w:1)
+	/// Proof: `ParaInherent::Included` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::AllowedRelayParents` (r:1 w:1)
+	/// Proof: `ParasShared::AllowedRelayParents` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::AvailabilityCores` (r:1 w:1)
+	/// Proof: `ParaScheduler::AvailabilityCores` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Babe::AuthorVrfRandomness` (r:1 w:0)
+	/// Proof: `Babe::AuthorVrfRandomness` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `ParaInherent::OnChainVotes` (r:1 w:1)
+	/// Proof: `ParaInherent::OnChainVotes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Frozen` (r:1 w:0)
+	/// Proof: `ParasDisputes::Frozen` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailability` (r:2 w:1)
+	/// Proof: `ParaInclusion::PendingAvailability` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailabilityCommitments` (r:1 w:1)
+	/// Proof: `ParaInclusion::PendingAvailabilityCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:1)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelDigests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Disputes` (r:1 w:0)
+	/// Proof: `ParasDisputes::Disputes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::SessionStartBlock` (r:1 w:0)
+	/// Proof: `ParaScheduler::SessionStartBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ValidatorGroups` (r:1 w:0)
+	/// Proof: `ParaScheduler::ValidatorGroups` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ClaimQueue` (r:1 w:1)
+	/// Proof: `ParaScheduler::ClaimQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `CoretimeAssignmentProvider::CoreDescriptors` (r:1 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreDescriptors` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:1 w:0)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::ActiveValidatorIndices` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::DisabledValidators` (r:1 w:0)
+	/// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Included` (r:0 w:1)
+	/// Proof: `ParasDisputes::Included` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpWatermarks` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpWatermarks` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeGoAheadSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeGoAheadSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// The range of component `v` is `[101, 200]`.
+	fn enter_backed_candidates_variable(v: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `42863`
+		//  Estimated: `48803`
+		// Minimum execution time: 1_276_079_000 picoseconds.
+		Weight::from_parts(1_313_585_212, 0)
+			.saturating_add(Weight::from_parts(0, 48803))
+			// Standard Error: 18_279
+			.saturating_add(Weight::from_parts(43_528, 0).saturating_mul(v.into()))
+			.saturating_add(T::DbWeight::get().reads(27))
+			.saturating_add(T::DbWeight::get().writes(16))
 	}
-	// Storage: ParaInherent Included (r:1 w:1)
-	// Storage: System ParentHash (r:1 w:0)
-	// Storage: ParaScheduler AvailabilityCores (r:1 w:1)
-	// Storage: ParasShared CurrentSessionIndex (r:1 w:0)
-	// Storage: Configuration ActiveConfig (r:1 w:0)
-	// Storage: ParasDisputes Frozen (r:1 w:0)
-	// Storage: ParasShared ActiveValidatorKeys (r:1 w:0)
-	// Storage: Paras Parachains (r:1 w:0)
-	// Storage: ParaInclusion PendingAvailability (r:2 w:1)
-	// Storage: ParaInclusion PendingAvailabilityCommitments (r:1 w:1)
-	// Storage: Dmp DownwardMessageQueues (r:1 w:1)
-	// Storage: Hrmp HrmpChannelDigests (r:1 w:1)
-	// Storage: Paras FutureCodeUpgrades (r:1 w:0)
-	// Storage: ParasDisputes Disputes (r:2 w:0)
-	// Storage: ParaScheduler SessionStartBlock (r:1 w:0)
-	// Storage: ParaScheduler ParathreadQueue (r:1 w:1)
-	// Storage: ParaScheduler Scheduled (r:1 w:1)
-	// Storage: ParaScheduler ValidatorGroups (r:1 w:0)
-	// Storage: Paras PastCodeMeta (r:1 w:0)
-	// Storage: Paras CurrentCodeHash (r:1 w:0)
-	// Storage: Ump RelayDispatchQueueSize (r:1 w:0)
-	// Storage: Ump NeedsDispatch (r:1 w:1)
-	// Storage: Ump NextDispatchRoundStartWith (r:1 w:1)
-	// Storage: ParaInherent OnChainVotes (r:0 w:1)
-	// Storage: ParasDisputes Included (r:0 w:1)
-	// Storage: Hrmp HrmpWatermarks (r:0 w:1)
-	// Storage: Paras Heads (r:0 w:1)
+	/// Storage: `ParaInherent::Included` (r:1 w:1)
+	/// Proof: `ParaInherent::Included` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::AllowedRelayParents` (r:1 w:1)
+	/// Proof: `ParasShared::AllowedRelayParents` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::CurrentSessionIndex` (r:1 w:0)
+	/// Proof: `ParasShared::CurrentSessionIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::AvailabilityCores` (r:1 w:1)
+	/// Proof: `ParaScheduler::AvailabilityCores` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasShared::ActiveValidatorKeys` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorKeys` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Babe::AuthorVrfRandomness` (r:1 w:0)
+	/// Proof: `Babe::AuthorVrfRandomness` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `ParaInherent::OnChainVotes` (r:1 w:1)
+	/// Proof: `ParaInherent::OnChainVotes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Frozen` (r:1 w:0)
+	/// Proof: `ParasDisputes::Frozen` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailability` (r:2 w:1)
+	/// Proof: `ParaInclusion::PendingAvailability` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaInclusion::PendingAvailabilityCommitments` (r:1 w:1)
+	/// Proof: `ParaInclusion::PendingAvailabilityCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
+	/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:1)
+	/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpChannelDigests` (r:1 w:1)
+	/// Proof: `Hrmp::HrmpChannelDigests` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeUpgrades` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeUpgrades` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Registrar::Paras` (r:1 w:0)
+	/// Proof: `Registrar::Paras` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Disputes` (r:1 w:0)
+	/// Proof: `ParasDisputes::Disputes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::SessionStartBlock` (r:1 w:0)
+	/// Proof: `ParaScheduler::SessionStartBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ValidatorGroups` (r:1 w:0)
+	/// Proof: `ParaScheduler::ValidatorGroups` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParaScheduler::ClaimQueue` (r:1 w:1)
+	/// Proof: `ParaScheduler::ClaimQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `CoretimeAssignmentProvider::CoreDescriptors` (r:1 w:1)
+	/// Proof: `CoretimeAssignmentProvider::CoreDescriptors` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::CurrentCodeHash` (r:1 w:0)
+	/// Proof: `Paras::CurrentCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::FutureCodeHash` (r:1 w:0)
+	/// Proof: `Paras::FutureCodeHash` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeRestrictionSignal` (r:1 w:0)
+	/// Proof: `Paras::UpgradeRestrictionSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::ParaLifecycles` (r:1 w:0)
+	/// Proof: `Paras::ParaLifecycles` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(55), added: 2530, mode: `MaxEncodedLen`)
+	/// Storage: `ParasShared::ActiveValidatorIndices` (r:1 w:0)
+	/// Proof: `ParasShared::ActiveValidatorIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::DisabledValidators` (r:1 w:0)
+	/// Proof: `Session::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ParasDisputes::Included` (r:0 w:1)
+	/// Proof: `ParasDisputes::Included` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Hrmp::HrmpWatermarks` (r:0 w:1)
+	/// Proof: `Hrmp::HrmpWatermarks` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::Heads` (r:0 w:1)
+	/// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::UpgradeGoAheadSignal` (r:0 w:1)
+	/// Proof: `Paras::UpgradeGoAheadSignal` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Paras::MostRecentContext` (r:0 w:1)
+	/// Proof: `Paras::MostRecentContext` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn enter_backed_candidate_code_upgrade() -> Weight {
-		Weight::from_parts(36_903_411_000 as u64, 0)
-			.saturating_add(T::DbWeight::get().reads(25 as u64))
-			.saturating_add(T::DbWeight::get().writes(14 as u64))
+		// Proof Size summary in bytes:
+		//  Measured:  `42876`
+		//  Estimated: `48816`
+		// Minimum execution time: 34_352_245_000 picoseconds.
+		Weight::from_parts(34_587_559_000, 0)
+			.saturating_add(Weight::from_parts(0, 48816))
+			.saturating_add(T::DbWeight::get().reads(29))
+			.saturating_add(T::DbWeight::get().writes(16))
 	}
 }
diff --git a/polkadot/runtime/test-runtime/Cargo.toml b/polkadot/runtime/test-runtime/Cargo.toml
index 9753a409304..bdf68864605 100644
--- a/polkadot/runtime/test-runtime/Cargo.toml
+++ b/polkadot/runtime/test-runtime/Cargo.toml
@@ -155,6 +155,7 @@ runtime-benchmarks = [
 	"pallet-staking/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-vesting/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs
index 6c899c52701..a0617b3108f 100644
--- a/polkadot/runtime/test-runtime/src/lib.rs
+++ b/polkadot/runtime/test-runtime/src/lib.rs
@@ -238,6 +238,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = frame_support::weights::ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = ();
 }
 
 parameter_types! {
@@ -393,7 +394,7 @@ where
 
 		let current_block = System::block_number().saturated_into::<u64>().saturating_sub(1);
 		let tip = 0;
-		let extra: SignedExtra = (
+		let tx_ext: TxExtension = (
 			frame_system::CheckNonZeroSender::<Runtime>::new(),
 			frame_system::CheckSpecVersion::<Runtime>::new(),
 			frame_system::CheckTxVersion::<Runtime>::new(),
@@ -405,16 +406,17 @@ where
 			frame_system::CheckNonce::<Runtime>::from(nonce),
 			frame_system::CheckWeight::<Runtime>::new(),
 			pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
-		);
-		let raw_payload = SignedPayload::new(call, extra)
+		)
+			.into();
+		let raw_payload = SignedPayload::new(call, tx_ext)
 			.map_err(|e| {
 				log::warn!("Unable to create signed payload: {:?}", e);
 			})
 			.ok()?;
 		let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
-		let (call, extra, _) = raw_payload.deconstruct();
+		let (call, tx_ext, _) = raw_payload.deconstruct();
 		let address = Indices::unlookup(account);
-		Some((call, (address, signature, extra)))
+		Some((call, (address, signature, tx_ext)))
 	}
 }
 
@@ -442,12 +444,32 @@ parameter_types! {
 	pub Prefix: &'static [u8] = b"Pay KSMs to the Kusama account:";
 }
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct ClaimsHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+use frame_support::dispatch::DispatchInfo;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl claims::BenchmarkHelperTrait<RuntimeCall, DispatchInfo> for ClaimsHelper {
+	fn default_call_and_info() -> (RuntimeCall, DispatchInfo) {
+		use frame_support::dispatch::GetDispatchInfo;
+		let call = RuntimeCall::Claims(claims::Call::attest {
+			statement: claims::StatementKind::Regular.to_text().to_vec(),
+		});
+		let info = call.get_dispatch_info();
+		(call, info)
+	}
+}
+
 impl claims::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type VestingSchedule = Vesting;
 	type Prefix = Prefix;
 	type MoveClaimOrigin = frame_system::EnsureRoot<AccountId>;
 	type WeightInfo = claims::TestWeightInfo;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = ClaimsHelper;
 }
 
 parameter_types! {
@@ -728,8 +750,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// `BlockId` type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The `SignedExtension` to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -741,7 +763,7 @@ pub type SignedExtra = (
 );
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
@@ -752,7 +774,7 @@ pub type Executive = frame_executive::Executive<
 	AllPalletsWithSystem,
 >;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 
 pub type Hash = <Block as BlockT>::Hash;
 pub type Extrinsic = <Block as BlockT>::Extrinsic;
diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml
index 4180828bcfb..6899edeeaeb 100644
--- a/polkadot/runtime/westend/Cargo.toml
+++ b/polkadot/runtime/westend/Cargo.toml
@@ -270,6 +270,7 @@ runtime-benchmarks = [
 	"pallet-state-trie-migration/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"pallet-utility/runtime-benchmarks",
 	"pallet-vesting/runtime-benchmarks",
diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs
index b55d68ee0f6..45bbd0260e5 100644
--- a/polkadot/runtime/westend/src/lib.rs
+++ b/polkadot/runtime/westend/src/lib.rs
@@ -200,6 +200,7 @@ impl frame_system::Config for Runtime {
 	type Version = Version;
 	type AccountData = pallet_balances::AccountData<Balance>;
 	type SystemWeightInfo = weights::frame_system::WeightInfo<Runtime>;
+	type ExtensionsWeightInfo = weights::frame_system_extensions::WeightInfo<Runtime>;
 	type SS58Prefix = SS58Prefix;
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
 }
@@ -385,6 +386,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
+	type WeightInfo = weights::pallet_transaction_payment::WeightInfo<Runtime>;
 }
 
 parameter_types! {
@@ -820,7 +822,7 @@ where
 			// so the actual block number is `n`.
 			.saturating_sub(1);
 		let tip = 0;
-		let extra: SignedExtra = (
+		let tx_ext: TxExtension = (
 			frame_system::CheckNonZeroSender::<Runtime>::new(),
 			frame_system::CheckSpecVersion::<Runtime>::new(),
 			frame_system::CheckTxVersion::<Runtime>::new(),
@@ -832,16 +834,17 @@ where
 			frame_system::CheckNonce::<Runtime>::from(nonce),
 			frame_system::CheckWeight::<Runtime>::new(),
 			pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
-		);
-		let raw_payload = SignedPayload::new(call, extra)
+		)
+			.into();
+		let raw_payload = SignedPayload::new(call, tx_ext)
 			.map_err(|e| {
 				log::warn!("Unable to create signed payload: {:?}", e);
 			})
 			.ok()?;
 		let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
-		let (call, extra, _) = raw_payload.deconstruct();
+		let (call, tx_ext, _) = raw_payload.deconstruct();
 		let address = <Runtime as frame_system::Config>::Lookup::unlookup(account);
-		Some((call, (address, signature, extra)))
+		Some((call, (address, signature, tx_ext)))
 	}
 }
 
@@ -1548,8 +1551,8 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// `BlockId` type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The `SignedExtension` to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -1713,7 +1716,7 @@ pub mod migrations {
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
@@ -1724,7 +1727,7 @@ pub type Executive = frame_executive::Executive<
 	Migrations,
 >;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
@@ -1770,7 +1773,9 @@ mod benches {
 		[pallet_staking, Staking]
 		[pallet_sudo, Sudo]
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_timestamp, Timestamp]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_treasury, Treasury]
 		[pallet_utility, Utility]
 		[pallet_vesting, Vesting]
@@ -2312,6 +2317,7 @@ sp_api::impl_runtime_apis! {
 			use pallet_election_provider_support_benchmarking::Pallet as ElectionProviderBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;
 
 			type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::<Runtime>;
@@ -2340,6 +2346,7 @@ sp_api::impl_runtime_apis! {
 			use pallet_election_provider_support_benchmarking::Pallet as ElectionProviderBench;
 			use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;
 
 			impl pallet_session_benchmarking::Config for Runtime {}
diff --git a/polkadot/runtime/westend/src/weights/frame_system_extensions.rs b/polkadot/runtime/westend/src/weights/frame_system_extensions.rs
new file mode 100644
index 00000000000..e4e1a799ec6
--- /dev/null
+++ b/polkadot/runtime/westend/src/weights/frame_system_extensions.rs
@@ -0,0 +1,116 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-20, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot
+// benchmark
+// pallet
+// --steps=2
+// --repeat=2
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --pallet=frame-system-extensions
+// --chain=westend-dev
+// --output=./polkadot/runtime/westend/src/weights/
+// --header=./polkadot/file_header.txt
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `frame_system_extensions`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_356_000 picoseconds.
+		Weight::from_parts(7_805_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 5_510_000 picoseconds.
+		Weight::from_parts(10_009_000, 0)
+			.saturating_add(Weight::from_parts(0, 3509))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 761_000 picoseconds.
+		Weight::from_parts(4_308_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 3_396_000 picoseconds.
+		Weight::from_parts(7_585_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 521_000 picoseconds.
+		Weight::from_parts(4_168_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 541_000 picoseconds.
+		Weight::from_parts(4_228_000, 0)
+			.saturating_add(Weight::from_parts(0, 0))
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1489`
+		// Minimum execution time: 3_807_000 picoseconds.
+		Weight::from_parts(8_025_000, 0)
+			.saturating_add(Weight::from_parts(0, 1489))
+			.saturating_add(T::DbWeight::get().reads(1))
+			.saturating_add(T::DbWeight::get().writes(1))
+	}
+}
diff --git a/polkadot/runtime/westend/src/weights/mod.rs b/polkadot/runtime/westend/src/weights/mod.rs
index f6a9008d718..8aeb4216550 100644
--- a/polkadot/runtime/westend/src/weights/mod.rs
+++ b/polkadot/runtime/westend/src/weights/mod.rs
@@ -17,6 +17,7 @@
 
 pub mod frame_election_provider_support;
 pub mod frame_system;
+pub mod frame_system_extensions;
 pub mod pallet_asset_rate;
 pub mod pallet_bags_list;
 pub mod pallet_balances;
@@ -37,6 +38,7 @@ pub mod pallet_session;
 pub mod pallet_staking;
 pub mod pallet_sudo;
 pub mod pallet_timestamp;
+pub mod pallet_transaction_payment;
 pub mod pallet_treasury;
 pub mod pallet_utility;
 pub mod pallet_vesting;
diff --git a/polkadot/runtime/westend/src/weights/pallet_sudo.rs b/polkadot/runtime/westend/src/weights/pallet_sudo.rs
index e9ab3ad37a4..649c43e031d 100644
--- a/polkadot/runtime/westend/src/weights/pallet_sudo.rs
+++ b/polkadot/runtime/westend/src/weights/pallet_sudo.rs
@@ -94,4 +94,15 @@ impl<T: frame_system::Config> pallet_sudo::WeightInfo for WeightInfo<T> {
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
+	/// Storage: `Sudo::Key` (r:1 w:0)
+	/// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	fn check_only_sudo_account() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `132`
+		//  Estimated: `1517`
+		// Minimum execution time: 2_875_000 picoseconds.
+		Weight::from_parts(6_803_000, 0)
+			.saturating_add(Weight::from_parts(0, 1517))
+			.saturating_add(T::DbWeight::get().reads(1))
+	}
 }
diff --git a/polkadot/runtime/westend/src/weights/pallet_transaction_payment.rs b/polkadot/runtime/westend/src/weights/pallet_transaction_payment.rs
new file mode 100644
index 00000000000..001a09f103d
--- /dev/null
+++ b/polkadot/runtime/westend/src/weights/pallet_transaction_payment.rs
@@ -0,0 +1,65 @@
+// Copyright (C) Parity Technologies (UK) Ltd.
+// This file is part of Polkadot.
+
+// Polkadot 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.
+
+// Polkadot 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 Polkadot.  If not, see <http://www.gnu.org/licenses/>.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2023-12-21, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `gleipnir`, CPU: `AMD Ryzen 9 7900X 12-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/release/polkadot
+// benchmark
+// pallet
+// --steps=2
+// --repeat=2
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --pallet=pallet_transaction_payment
+// --chain=westend-dev
+// --output=./polkadot/runtime/westend/src/weights/
+// --header=./polkadot/file_header.txt
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_transaction_payment`.
+pub struct WeightInfo<T>(PhantomData<T>);
+impl<T: frame_system::Config> pallet_transaction_payment::WeightInfo for WeightInfo<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `156`
+		//  Estimated: `1641`
+		// Minimum execution time: 30_888_000 picoseconds.
+		Weight::from_parts(41_308_000, 0)
+			.saturating_add(Weight::from_parts(0, 1641))
+			.saturating_add(T::DbWeight::get().reads(3))
+	}
+}
diff --git a/polkadot/xcm/xcm-builder/Cargo.toml b/polkadot/xcm/xcm-builder/Cargo.toml
index 10726b0f511..660a30605e5 100644
--- a/polkadot/xcm/xcm-builder/Cargo.toml
+++ b/polkadot/xcm/xcm-builder/Cargo.toml
@@ -47,6 +47,7 @@ runtime-benchmarks = [
 	"pallet-assets/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
 	"pallet-salary/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-xcm/runtime-benchmarks",
 	"polkadot-parachain-primitives/runtime-benchmarks",
 	"polkadot-runtime-parachains/runtime-benchmarks",
diff --git a/polkadot/xcm/xcm-builder/src/tests/pay/mock.rs b/polkadot/xcm/xcm-builder/src/tests/pay/mock.rs
index 9892c500f2e..3bd2fa4b4f5 100644
--- a/polkadot/xcm/xcm-builder/src/tests/pay/mock.rs
+++ b/polkadot/xcm/xcm-builder/src/tests/pay/mock.rs
@@ -25,14 +25,22 @@ use frame_support::{
 	traits::{ConstU32, Everything},
 };
 use frame_system::{EnsureRoot, EnsureSigned};
-use polkadot_test_runtime::SignedExtra;
 use primitives::{AccountIndex, BlakeTwo256, Signature};
 use sp_runtime::{generic, traits::MaybeEquivalence, AccountId32, BuildStorage};
 use xcm_executor::{traits::ConvertLocation, XcmExecutor};
 
+pub type TxExtension = (
+	frame_system::CheckNonZeroSender<Test>,
+	frame_system::CheckSpecVersion<Test>,
+	frame_system::CheckTxVersion<Test>,
+	frame_system::CheckGenesis<Test>,
+	frame_system::CheckMortality<Test>,
+	frame_system::CheckNonce<Test>,
+	frame_system::CheckWeight<Test>,
+);
 pub type Address = sp_runtime::MultiAddress<AccountId, AccountIndex>;
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
 pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 
diff --git a/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs b/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs
index a20390b64f9..f953e54111c 100644
--- a/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs
+++ b/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs
@@ -46,13 +46,13 @@ use xcm_builder::{
 };
 use xcm_executor::{Config, XcmExecutor};
 
-pub type SignedExtra = (frame_system::CheckNonZeroSender<Runtime>,);
+pub type TxExtension = (frame_system::CheckNonZeroSender<Runtime>,);
 
 pub type BlockNumber = u64;
 pub type Address = MultiAddress<AccountId, ()>;
 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 
 pub type Signature = MultiSignature;
diff --git a/polkadot/xcm/xcm-simulator/fuzzer/src/relay_chain.rs b/polkadot/xcm/xcm-simulator/fuzzer/src/relay_chain.rs
index 5bf65fa9f9a..a11e535492c 100644
--- a/polkadot/xcm/xcm-simulator/fuzzer/src/relay_chain.rs
+++ b/polkadot/xcm/xcm-simulator/fuzzer/src/relay_chain.rs
@@ -45,13 +45,13 @@ use xcm_builder::{
 };
 use xcm_executor::{Config, XcmExecutor};
 
-pub type SignedExtra = (frame_system::CheckNonZeroSender<Runtime>,);
+pub type TxExtension = (frame_system::CheckNonZeroSender<Runtime>,);
 
 pub type BlockNumber = u64;
 pub type Address = MultiAddress<AccountId, ()>;
 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 
 pub type Signature = MultiSignature;
diff --git a/prdoc/pr_2280.prdoc b/prdoc/pr_2280.prdoc
new file mode 100644
index 00000000000..3026dc254e6
--- /dev/null
+++ b/prdoc/pr_2280.prdoc
@@ -0,0 +1,144 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: FRAME Create `TransactionExtension` as a replacement for `SignedExtension`
+
+doc:
+  - audience: Runtime User
+    description: |
+      Introduces a new trait `TransactionExtension` to replace `SignedExtension`. Introduce the
+      idea of transactions which obey the runtime's extensions and have according Extension data
+      (né Extra data) yet do not have hard-coded signatures.
+
+      Deprecate the terminology of "Unsigned" when used for transactions/extrinsics owing to there
+      now being "proper" unsigned transactions which obey the extension framework and "old-style"
+      unsigned which do not. Instead we have `General` for the former and `Bare` for the latter.
+      Unsigned will be phased out as a type of transaction, and `Bare` will only be used for
+      Inherents.
+
+      Types of extrinsic are now therefore
+        - Bare (no hardcoded signature, no Extra data; used to be known as "Unsigned")
+            - Bare transactions (deprecated) - Gossiped, validated with `ValidateUnsigned`
+              (deprecated) and the `_bare_compat` bits of `TransactionExtension` (deprecated).
+            - Inherents - Not gossiped, validated with `ProvideInherent`.
+        - Extended (Extra data) - Gossiped, validated via `TransactionExtension`.
+            - Signed transactions (with a hardcoded signature).
+            - General transactions (without a hardcoded signature).
+
+      Notable information on `TransactionExtension` and the differences from `SignedExtension`
+        - `AdditionalSigned`/`additional_signed` is renamed to `Implicit`/`implicit`. It is encoded
+          for the entire transaction and passed in to each extension as a new argument to validate.
+        - `pre_dispatch` is renamed to `prepare`.
+        - `validate` runs transaction validation logic both off-chain and on-chain, and is
+          non-mutating.
+        - `prepare` runs on-chain pre-execution logic using information extracted during validation
+          and is mutating.
+        - `validate` and `prepare` are now passed an `Origin` rather than an `AccountId`. If the
+          extension logic presumes an `AccountId`, consider using the trait function
+          `AsSystemOriginSigner::as_system_origin_signer`.
+        - A signature on the underlying transaction may validly not be present.
+        - The origin may be altered during validation.
+        - Validation functionality present in `validate` should not be repeated in `prepare`.
+          Useful information obtained during `validate` should now be passsed in to `prepare` using
+          the new user-specifiable type `Val`.
+        - Unsigned logic should be migrated from the old `*_unsigned` functions into the regular
+          versions of the new functions where the `Origin` is `None`.
+        - The `Call` type defining the runtime call is now a type parameter.
+        - `TransactionExtension` now takes a `Context` type parameter. This defines some arbitrary
+          contextual data that is injected into the transaction extension logic. It is unused in
+          instances migrated from `SignedExtension`.
+        - Extensions now track the weight they consume during valdiation, preparation and
+          post-dispatch through the `TransactionExtensionBase::weight` function.
+        - `TestXt` was removed and its usage in tests was replaced with `UncheckedExtrinsic`
+          instances.
+
+      To fix the build issues introduced by this change, use the `AsTransactionExtension` adapter
+      to wrap existing `SignedExtension`s by converting them using the `From<SignedExtension>`
+      generic implementation for `AsTransactionExtension`. More details on migrating existing
+      `SignedExtension` implementations to `TransactionExtension` in the PR description.
+
+crates:
+  - name: bridge-runtime-common
+  - name: bp-bridge-hub-cumulus
+  - name: bp-kusama
+  - name: bp-polkadot-bulletin
+  - name: bp-polkadot
+  - name: bp-rococo
+  - name: bp-westend
+  - name: bp-polkadot-core
+  - name: bp-runtime
+  - name: snowbridge-pallet-inbound-queue
+  - name: snowbridge-pallet-outbound-queue
+  - name: snowbridge-pallet-system
+  - name: snowbridge-runtime-test-common
+  - name: parachain-template-runtime
+  - name: asset-hub-rococo-runtime
+  - name: asset-hub-westend-runtime
+  - name: bridge-hub-rococo-runtime
+  - name: bridge-hub-westend-runtime
+  - name: collectives-westend-runtime
+  - name: contracts-rococo-runtime
+  - name: coretime-rococo-runtime
+  - name: coretime-westend-runtime
+  - name: glutton-westend-runtime
+  - name: people-rococo-runtime
+  - name: people-westend-runtime
+  - name: seedling-runtime
+  - name: shell-runtime
+  - name: penpal-runtime
+  - name: rococo-parachain-runtime
+  - name: polkadot-parachain-bin
+  - name: cumulus-primitives-storage-weight-reclaim
+  - name: cumulus-test-client
+  - name: cumulus-test-runtime
+  - name: cumulus-test-service
+  - name: polkadot-sdk-docs
+  - name: polkadot-service
+  - name: polkadot-test-service
+  - name: polkadot-runtime-common
+  - name: rococo-runtime
+  - name: polkadot-test-runtime
+  - name: westend-runtime
+  - name: staging-xcm-builder
+  - name: minimal-runtime
+  - name: node-template
+  - name: node-template-runtime
+  - name: staging-node-cli
+  - name: kitchensink-runtime
+  - name: node-testing
+  - name: sc-client-api
+  - name: sc-client-db
+  - name: sc-network-gossip
+  - name: sc-network-sync
+  - name: sc-transaction-pool
+  - name: frame
+  - name: pallet-babe
+  - name: pallet-balances
+  - name: pallet-beefy
+  - name: pallet-collective
+  - name: pallet-election-provider-multi-phase
+  - name: pallet-elections-phragmen
+  - name: pallet-example-basic
+  - name: pallet-example-offchain-worker
+  - name: frame-executive
+  - name: pallet-grandpa
+  - name: pallet-im-online
+  - name: pallet-offences
+  - name: pallet-sassafras
+  - name: pallet-state-trie-migration
+  - name: pallet-sudo
+  - name: frame-support-procedural
+  - name: frame-support
+  - name: frame-system
+  - name: frame-system-benchmarking
+  - name: pallet-transaction-payment
+  - name: pallet-asset-conversion-tx-payment
+  - name: pallet-asset-tx-payment
+  - name: pallet-skip-feeless-payment
+  - name: sp-inherents
+  - name: sp-metadata-ir
+  - name: sp-runtime
+  - name: substrate-test-runtime
+  - name: frame-benchmarking-cli
+  - name: frame-remote-externalities
+  - name: substrate-rpc-client
diff --git a/substrate/.maintain/frame-weight-template.hbs b/substrate/.maintain/frame-weight-template.hbs
index ecd384a5145..ec9eee205ce 100644
--- a/substrate/.maintain/frame-weight-template.hbs
+++ b/substrate/.maintain/frame-weight-template.hbs
@@ -33,7 +33,7 @@ pub trait WeightInfo {
 
 /// Weights for `{{pallet}}` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
-{{#if (eq pallet "frame_system")}}
+{{#if (or (eq pallet "frame_system") (eq pallet "frame_system_extensions"))}}
 impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
 {{else}}
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
diff --git a/substrate/bin/minimal/runtime/src/lib.rs b/substrate/bin/minimal/runtime/src/lib.rs
index fb996aef46b..d3e8a2e8ec0 100644
--- a/substrate/bin/minimal/runtime/src/lib.rs
+++ b/substrate/bin/minimal/runtime/src/lib.rs
@@ -52,7 +52,7 @@ pub fn native_version() -> NativeVersion {
 	NativeVersion { runtime_version: VERSION, can_author_with: Default::default() }
 }
 
-type SignedExtra = (
+type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -104,7 +104,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type LengthToFee = FixedFee<1, <Self as pallet_balances::Config>::Balance>;
 }
 
-type Block = frame::runtime::types_common::BlockOf<Runtime, SignedExtra>;
+type Block = frame::runtime::types_common::BlockOf<Runtime, TxExtension>;
 type Header = HeaderFor<Runtime>;
 
 type RuntimeExecutive =
diff --git a/substrate/bin/node-template/node/Cargo.toml b/substrate/bin/node-template/node/Cargo.toml
index 9cba2b5a366..2f31947e492 100644
--- a/substrate/bin/node-template/node/Cargo.toml
+++ b/substrate/bin/node-template/node/Cargo.toml
@@ -78,6 +78,7 @@ runtime-benchmarks = [
 	"frame-benchmarking/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
 	"node-template-runtime/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"sc-service/runtime-benchmarks",
 	"sp-runtime/runtime-benchmarks",
 ]
diff --git a/substrate/bin/node-template/node/src/benchmarking.rs b/substrate/bin/node-template/node/src/benchmarking.rs
index 6e29ad1a123..eacc367669c 100644
--- a/substrate/bin/node-template/node/src/benchmarking.rs
+++ b/substrate/bin/node-template/node/src/benchmarking.rs
@@ -109,7 +109,7 @@ pub fn create_benchmark_extrinsic(
 		.checked_next_power_of_two()
 		.map(|c| c / 2)
 		.unwrap_or(2) as u64;
-	let extra: runtime::SignedExtra = (
+	let tx_ext: runtime::TxExtension = (
 		frame_system::CheckNonZeroSender::<runtime::Runtime>::new(),
 		frame_system::CheckSpecVersion::<runtime::Runtime>::new(),
 		frame_system::CheckTxVersion::<runtime::Runtime>::new(),
@@ -121,11 +121,12 @@ pub fn create_benchmark_extrinsic(
 		frame_system::CheckNonce::<runtime::Runtime>::from(nonce),
 		frame_system::CheckWeight::<runtime::Runtime>::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::<runtime::Runtime>::from(0),
-	);
+	)
+		.into();
 
 	let raw_payload = runtime::SignedPayload::from_raw(
 		call.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		(
 			(),
 			runtime::VERSION.spec_version,
@@ -143,7 +144,7 @@ pub fn create_benchmark_extrinsic(
 		call,
 		sp_runtime::AccountId32::from(sender.public()).into(),
 		runtime::Signature::Sr25519(signature),
-		extra,
+		tx_ext,
 	)
 }
 
diff --git a/substrate/bin/node-template/runtime/Cargo.toml b/substrate/bin/node-template/runtime/Cargo.toml
index 86bab0ca375..c7cffa568db 100644
--- a/substrate/bin/node-template/runtime/Cargo.toml
+++ b/substrate/bin/node-template/runtime/Cargo.toml
@@ -106,6 +106,7 @@ runtime-benchmarks = [
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-template/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"sp-runtime/runtime-benchmarks",
 ]
 try-runtime = [
diff --git a/substrate/bin/node-template/runtime/src/lib.rs b/substrate/bin/node-template/runtime/src/lib.rs
index 159697f427f..ee622a691b4 100644
--- a/substrate/bin/node-template/runtime/src/lib.rs
+++ b/substrate/bin/node-template/runtime/src/lib.rs
@@ -241,6 +241,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = IdentityFee<Balance>;
 	type LengthToFee = IdentityFee<Balance>;
 	type FeeMultiplierUpdate = ConstFeeMultiplier<FeeMultiplier>;
+	type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight<Runtime>;
 }
 
 impl pallet_sudo::Config for Runtime {
@@ -276,8 +277,8 @@ pub type Address = sp_runtime::MultiAddress<AccountId, ()>;
 pub type Header = generic::Header<BlockNumber, BlakeTwo256>;
 /// Block type as expected by this runtime.
 pub type Block = generic::Block<Header, UncheckedExtrinsic>;
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (
+/// The extension to the basic transaction logic.
+pub type TxExtension = (
 	frame_system::CheckNonZeroSender<Runtime>,
 	frame_system::CheckSpecVersion<Runtime>,
 	frame_system::CheckTxVersion<Runtime>,
@@ -296,9 +297,9 @@ type Migrations = ();
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
@@ -314,6 +315,7 @@ mod benches {
 	frame_benchmarking::define_benchmarks!(
 		[frame_benchmarking, BaselineBench::<Runtime>]
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_balances, Balances]
 		[pallet_timestamp, Timestamp]
 		[pallet_sudo, Sudo]
@@ -498,6 +500,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{baseline, Benchmarking, BenchmarkList};
 			use frame_support::traits::StorageInfoTrait;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use baseline::Pallet as BaselineBench;
 
 			let mut list = Vec::<BenchmarkList>::new();
@@ -514,6 +517,7 @@ impl_runtime_apis! {
 			use frame_benchmarking::{baseline, Benchmarking, BenchmarkBatch};
 			use sp_storage::TrackedStorageKey;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use baseline::Pallet as BaselineBench;
 
 			impl frame_system_benchmarking::Config for Runtime {}
diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml
index abe284c41da..c91a83e6d6e 100644
--- a/substrate/bin/node/cli/Cargo.toml
+++ b/substrate/bin/node/cli/Cargo.toml
@@ -196,6 +196,7 @@ runtime-benchmarks = [
 	"frame-system/runtime-benchmarks",
 	"kitchensink-runtime/runtime-benchmarks",
 	"node-inspect?/runtime-benchmarks",
+	"pallet-asset-conversion-tx-payment/runtime-benchmarks",
 	"pallet-asset-tx-payment/runtime-benchmarks",
 	"pallet-assets/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
@@ -205,6 +206,7 @@ runtime-benchmarks = [
 	"pallet-skip-feeless-payment/runtime-benchmarks",
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"sc-client-db/runtime-benchmarks",
 	"sc-service/runtime-benchmarks",
diff --git a/substrate/bin/node/cli/benches/block_production.rs b/substrate/bin/node/cli/benches/block_production.rs
index 23a62cc0bd2..b98a321c338 100644
--- a/substrate/bin/node/cli/benches/block_production.rs
+++ b/substrate/bin/node/cli/benches/block_production.rs
@@ -110,7 +110,7 @@ fn new_node(tokio_handle: Handle) -> node_cli::service::NewFullBase {
 
 fn extrinsic_set_time(now: u64) -> OpaqueExtrinsic {
 	kitchensink_runtime::UncheckedExtrinsic {
-		signature: None,
+		preamble: sp_runtime::generic::Preamble::Bare,
 		function: kitchensink_runtime::RuntimeCall::Timestamp(pallet_timestamp::Call::set { now }),
 	}
 	.into()
diff --git a/substrate/bin/node/cli/benches/executor.rs b/substrate/bin/node/cli/benches/executor.rs
index a326e1a79ea..e13d34f9657 100644
--- a/substrate/bin/node/cli/benches/executor.rs
+++ b/substrate/bin/node/cli/benches/executor.rs
@@ -29,7 +29,7 @@ use sp_core::{
 	storage::well_known_keys,
 	traits::{CallContext, CodeExecutor, RuntimeCode},
 };
-use sp_runtime::traits::BlakeTwo256;
+use sp_runtime::{generic::ExtrinsicFormat, traits::BlakeTwo256};
 use sp_state_machine::TestExternalities as CoreTestExternalities;
 use staging_node_cli::service::RuntimeExecutor;
 
@@ -144,11 +144,11 @@ fn test_blocks(
 ) -> Vec<(Vec<u8>, Hash)> {
 	let mut test_ext = new_test_ext(genesis_config);
 	let mut block1_extrinsics = vec![CheckedExtrinsic {
-		signed: None,
+		format: ExtrinsicFormat::Bare,
 		function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: 0 }),
 	}];
 	block1_extrinsics.extend((0..20).map(|i| CheckedExtrinsic {
-		signed: Some((alice(), signed_extra(i, 0))),
+		format: ExtrinsicFormat::Signed(alice(), tx_ext(i, 0)),
 		function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 			dest: bob().into(),
 			value: 1 * DOLLARS,
diff --git a/substrate/bin/node/cli/src/service.rs b/substrate/bin/node/cli/src/service.rs
index 8f2aba6b44c..157f278fb53 100644
--- a/substrate/bin/node/cli/src/service.rs
+++ b/substrate/bin/node/cli/src/service.rs
@@ -107,18 +107,21 @@ pub fn create_extrinsic(
 		.map(|c| c / 2)
 		.unwrap_or(2) as u64;
 	let tip = 0;
-	let extra: kitchensink_runtime::SignedExtra =
+	let tx_ext: kitchensink_runtime::TxExtension =
 		(
-			frame_system::CheckNonZeroSender::<kitchensink_runtime::Runtime>::new(),
-			frame_system::CheckSpecVersion::<kitchensink_runtime::Runtime>::new(),
-			frame_system::CheckTxVersion::<kitchensink_runtime::Runtime>::new(),
-			frame_system::CheckGenesis::<kitchensink_runtime::Runtime>::new(),
-			frame_system::CheckEra::<kitchensink_runtime::Runtime>::from(generic::Era::mortal(
-				period,
-				best_block.saturated_into(),
-			)),
-			frame_system::CheckNonce::<kitchensink_runtime::Runtime>::from(nonce),
-			frame_system::CheckWeight::<kitchensink_runtime::Runtime>::new(),
+			(
+				frame_system::CheckNonZeroSender::<kitchensink_runtime::Runtime>::new(),
+				frame_system::CheckSpecVersion::<kitchensink_runtime::Runtime>::new(),
+				frame_system::CheckTxVersion::<kitchensink_runtime::Runtime>::new(),
+				frame_system::CheckGenesis::<kitchensink_runtime::Runtime>::new(),
+				frame_system::CheckEra::<kitchensink_runtime::Runtime>::from(generic::Era::mortal(
+					period,
+					best_block.saturated_into(),
+				)),
+				frame_system::CheckNonce::<kitchensink_runtime::Runtime>::from(nonce),
+				frame_system::CheckWeight::<kitchensink_runtime::Runtime>::new(),
+			)
+				.into(),
 			pallet_skip_feeless_payment::SkipCheckIfFeeless::from(
 				pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::<
 					kitchensink_runtime::Runtime,
@@ -128,15 +131,17 @@ pub fn create_extrinsic(
 
 	let raw_payload = kitchensink_runtime::SignedPayload::from_raw(
 		function.clone(),
-		extra.clone(),
+		tx_ext.clone(),
 		(
-			(),
-			kitchensink_runtime::VERSION.spec_version,
-			kitchensink_runtime::VERSION.transaction_version,
-			genesis_hash,
-			best_hash,
-			(),
-			(),
+			(
+				(),
+				kitchensink_runtime::VERSION.spec_version,
+				kitchensink_runtime::VERSION.transaction_version,
+				genesis_hash,
+				best_hash,
+				(),
+				(),
+			),
 			(),
 		),
 	);
@@ -146,7 +151,7 @@ pub fn create_extrinsic(
 		function,
 		sp_runtime::AccountId32::from(sender.public()).into(),
 		kitchensink_runtime::Signature::Sr25519(signature),
-		extra,
+		tx_ext,
 	)
 }
 
@@ -791,7 +796,7 @@ mod tests {
 	use codec::Encode;
 	use kitchensink_runtime::{
 		constants::{currency::CENTS, time::SLOT_DURATION},
-		Address, BalancesCall, RuntimeCall, UncheckedExtrinsic,
+		Address, BalancesCall, RuntimeCall, TxExtension, UncheckedExtrinsic,
 	};
 	use node_primitives::{Block, DigestItem, Signature};
 	use sc_client_api::BlockBackend;
@@ -993,25 +998,31 @@ mod tests {
 				let tx_payment = pallet_skip_feeless_payment::SkipCheckIfFeeless::from(
 					pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::from(0, None),
 				);
-				let extra = (
-					check_non_zero_sender,
-					check_spec_version,
-					check_tx_version,
-					check_genesis,
-					check_era,
-					check_nonce,
-					check_weight,
+				let tx_ext: TxExtension = (
+					(
+						check_non_zero_sender,
+						check_spec_version,
+						check_tx_version,
+						check_genesis,
+						check_era,
+						check_nonce,
+						check_weight,
+					)
+						.into(),
 					tx_payment,
 				);
 				let raw_payload = SignedPayload::from_raw(
 					function,
-					extra,
-					((), spec_version, transaction_version, genesis_hash, genesis_hash, (), (), ()),
+					tx_ext,
+					(
+						((), spec_version, transaction_version, genesis_hash, genesis_hash, (), ()),
+						(),
+					),
 				);
 				let signature = raw_payload.using_encoded(|payload| signer.sign(payload));
-				let (function, extra, _) = raw_payload.deconstruct();
+				let (function, tx_ext, _) = raw_payload.deconstruct();
 				index += 1;
-				UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), extra)
+				UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), tx_ext)
 					.into()
 			},
 		);
diff --git a/substrate/bin/node/cli/tests/basic.rs b/substrate/bin/node/cli/tests/basic.rs
index 525ab2e39c1..5fcb2295ef0 100644
--- a/substrate/bin/node/cli/tests/basic.rs
+++ b/substrate/bin/node/cli/tests/basic.rs
@@ -67,7 +67,7 @@ fn transfer_fee<E: Encode>(extrinsic: &E) -> Balance {
 
 fn xt() -> UncheckedExtrinsic {
 	sign(CheckedExtrinsic {
-		signed: Some((alice(), signed_extra(0, 0))),
+		format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(0, 0)),
 		function: RuntimeCall::Balances(default_transfer_call()),
 	})
 }
@@ -84,11 +84,11 @@ fn changes_trie_block() -> (Vec<u8>, Hash) {
 		GENESIS_HASH.into(),
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time }),
 			},
 			CheckedExtrinsic {
-				signed: Some((alice(), signed_extra(0, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(0, 0)),
 				function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 					dest: bob().into(),
 					value: 69 * DOLLARS,
@@ -111,11 +111,11 @@ fn blocks() -> ((Vec<u8>, Hash), (Vec<u8>, Hash)) {
 		GENESIS_HASH.into(),
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time1 }),
 			},
 			CheckedExtrinsic {
-				signed: Some((alice(), signed_extra(0, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(0, 0)),
 				function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 					dest: bob().into(),
 					value: 69 * DOLLARS,
@@ -131,18 +131,18 @@ fn blocks() -> ((Vec<u8>, Hash), (Vec<u8>, Hash)) {
 		block1.1,
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time2 }),
 			},
 			CheckedExtrinsic {
-				signed: Some((bob(), signed_extra(0, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(bob(), tx_ext(0, 0)),
 				function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 					dest: alice().into(),
 					value: 5 * DOLLARS,
 				}),
 			},
 			CheckedExtrinsic {
-				signed: Some((alice(), signed_extra(1, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(1, 0)),
 				function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 					dest: bob().into(),
 					value: 15 * DOLLARS,
@@ -166,11 +166,11 @@ fn block_with_size(time: u64, nonce: u32, size: usize) -> (Vec<u8>, Hash) {
 		GENESIS_HASH.into(),
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time * 1000 }),
 			},
 			CheckedExtrinsic {
-				signed: Some((alice(), signed_extra(nonce, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(nonce, 0)),
 				function: RuntimeCall::System(frame_system::Call::remark { remark: vec![0; size] }),
 			},
 		],
@@ -677,11 +677,11 @@ fn deploying_wasm_contract_should_work() {
 		GENESIS_HASH.into(),
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time }),
 			},
 			CheckedExtrinsic {
-				signed: Some((charlie(), signed_extra(0, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(charlie(), tx_ext(0, 0)),
 				function: RuntimeCall::Contracts(pallet_contracts::Call::instantiate_with_code::<
 					Runtime,
 				> {
@@ -694,7 +694,7 @@ fn deploying_wasm_contract_should_work() {
 				}),
 			},
 			CheckedExtrinsic {
-				signed: Some((charlie(), signed_extra(1, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(charlie(), tx_ext(1, 0)),
 				function: RuntimeCall::Contracts(pallet_contracts::Call::call::<Runtime> {
 					dest: sp_runtime::MultiAddress::Id(addr.clone()),
 					value: 10,
diff --git a/substrate/bin/node/cli/tests/fees.rs b/substrate/bin/node/cli/tests/fees.rs
index 8c7b3c87315..9d6407067a3 100644
--- a/substrate/bin/node/cli/tests/fees.rs
+++ b/substrate/bin/node/cli/tests/fees.rs
@@ -54,11 +54,11 @@ fn fee_multiplier_increases_and_decreases_on_big_weight() {
 		GENESIS_HASH.into(),
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time1 }),
 			},
 			CheckedExtrinsic {
-				signed: Some((charlie(), signed_extra(0, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(charlie(), tx_ext(0, 0)),
 				function: RuntimeCall::Sudo(pallet_sudo::Call::sudo {
 					call: Box::new(RuntimeCall::RootTesting(
 						pallet_root_testing::Call::fill_block { ratio: Perbill::from_percent(60) },
@@ -77,11 +77,11 @@ fn fee_multiplier_increases_and_decreases_on_big_weight() {
 		block1.1,
 		vec![
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time2 }),
 			},
 			CheckedExtrinsic {
-				signed: Some((charlie(), signed_extra(1, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(charlie(), tx_ext(1, 0)),
 				function: RuntimeCall::System(frame_system::Call::remark { remark: vec![0; 1] }),
 			},
 		],
@@ -147,7 +147,7 @@ fn transaction_fee_is_correct() {
 
 	let tip = 1_000_000;
 	let xt = sign(CheckedExtrinsic {
-		signed: Some((alice(), signed_extra(0, tip))),
+		format: sp_runtime::generic::ExtrinsicFormat::Signed(alice(), tx_ext(0, tip)),
 		function: RuntimeCall::Balances(default_transfer_call()),
 	});
 
@@ -211,7 +211,10 @@ fn block_weight_capacity_report() {
 		let num_transfers = block_number * factor;
 		let mut xts = (0..num_transfers)
 			.map(|i| CheckedExtrinsic {
-				signed: Some((charlie(), signed_extra(nonce + i as Nonce, 0))),
+				format: sp_runtime::generic::ExtrinsicFormat::Signed(
+					charlie(),
+					tx_ext(nonce + i as Nonce, 0),
+				),
 				function: RuntimeCall::Balances(pallet_balances::Call::transfer_allow_death {
 					dest: bob().into(),
 					value: 0,
@@ -222,7 +225,7 @@ fn block_weight_capacity_report() {
 		xts.insert(
 			0,
 			CheckedExtrinsic {
-				signed: None,
+				format: sp_runtime::generic::ExtrinsicFormat::Bare,
 				function: RuntimeCall::Timestamp(pallet_timestamp::Call::set { now: time * 1000 }),
 			},
 		);
@@ -285,13 +288,16 @@ fn block_length_capacity_report() {
 			previous_hash,
 			vec![
 				CheckedExtrinsic {
-					signed: None,
+					format: sp_runtime::generic::ExtrinsicFormat::Bare,
 					function: RuntimeCall::Timestamp(pallet_timestamp::Call::set {
 						now: time * 1000,
 					}),
 				},
 				CheckedExtrinsic {
-					signed: Some((charlie(), signed_extra(nonce, 0))),
+					format: sp_runtime::generic::ExtrinsicFormat::Signed(
+						charlie(),
+						tx_ext(nonce, 0),
+					),
 					function: RuntimeCall::System(frame_system::Call::remark {
 						remark: vec![0u8; (block_number * factor) as usize],
 					}),
diff --git a/substrate/bin/node/cli/tests/submit_transaction.rs b/substrate/bin/node/cli/tests/submit_transaction.rs
index 5cbb0103d47..f3a5bac8fb5 100644
--- a/substrate/bin/node/cli/tests/submit_transaction.rs
+++ b/substrate/bin/node/cli/tests/submit_transaction.rs
@@ -130,8 +130,8 @@ fn should_submit_signed_twice_from_the_same_account() {
 		// now check that the transaction nonces are not equal
 		let s = state.read();
 		fn nonce(tx: UncheckedExtrinsic) -> frame_system::CheckNonce<Runtime> {
-			let extra = tx.signature.unwrap().2;
-			extra.5
+			let extra = tx.preamble.to_signed().unwrap().2;
+			(extra.0).5
 		}
 		let nonce1 = nonce(UncheckedExtrinsic::decode(&mut &*s.transactions[0]).unwrap());
 		let nonce2 = nonce(UncheckedExtrinsic::decode(&mut &*s.transactions[1]).unwrap());
@@ -179,8 +179,8 @@ fn should_submit_signed_twice_from_all_accounts() {
 		// now check that the transaction nonces are not equal
 		let s = state.read();
 		fn nonce(tx: UncheckedExtrinsic) -> frame_system::CheckNonce<Runtime> {
-			let extra = tx.signature.unwrap().2;
-			extra.5
+			let extra = tx.preamble.to_signed().unwrap().2;
+			(extra.0).5
 		}
 		let nonce1 = nonce(UncheckedExtrinsic::decode(&mut &*s.transactions[0]).unwrap());
 		let nonce2 = nonce(UncheckedExtrinsic::decode(&mut &*s.transactions[1]).unwrap());
@@ -236,7 +236,7 @@ fn submitted_transaction_should_be_valid() {
 		let source = TransactionSource::External;
 		let extrinsic = UncheckedExtrinsic::decode(&mut &*tx0).unwrap();
 		// add balance to the account
-		let author = extrinsic.signature.clone().unwrap().0;
+		let author = extrinsic.preamble.clone().to_signed().clone().unwrap().0;
 		let address = Indices::lookup(author).unwrap();
 		let data = pallet_balances::AccountData { free: 5_000_000_000_000, ..Default::default() };
 		let account = frame_system::AccountInfo { providers: 1, data, ..Default::default() };
diff --git a/substrate/bin/node/runtime/Cargo.toml b/substrate/bin/node/runtime/Cargo.toml
index 9607d05daf0..bdef42474d0 100644
--- a/substrate/bin/node/runtime/Cargo.toml
+++ b/substrate/bin/node/runtime/Cargo.toml
@@ -276,6 +276,7 @@ runtime-benchmarks = [
 	"frame-system-benchmarking/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
 	"pallet-alliance/runtime-benchmarks",
+	"pallet-asset-conversion-tx-payment/runtime-benchmarks",
 	"pallet-asset-conversion/runtime-benchmarks",
 	"pallet-asset-rate/runtime-benchmarks",
 	"pallet-asset-tx-payment/runtime-benchmarks",
@@ -333,6 +334,7 @@ runtime-benchmarks = [
 	"pallet-sudo/runtime-benchmarks",
 	"pallet-timestamp/runtime-benchmarks",
 	"pallet-tips/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"pallet-transaction-storage/runtime-benchmarks",
 	"pallet-treasury/runtime-benchmarks",
 	"pallet-tx-pause/runtime-benchmarks",
diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs
index 5431628c747..f4615802515 100644
--- a/substrate/bin/node/runtime/src/lib.rs
+++ b/substrate/bin/node/runtime/src/lib.rs
@@ -560,6 +560,7 @@ impl pallet_transaction_payment::Config for Runtime {
 		MinimumMultiplier,
 		MaximumMultiplier,
 	>;
+	type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight<Runtime>;
 }
 
 impl pallet_asset_tx_payment::Config for Runtime {
@@ -569,6 +570,9 @@ impl pallet_asset_tx_payment::Config for Runtime {
 		pallet_assets::BalanceToAssetBalance<Balances, Runtime, ConvertInto, Instance1>,
 		CreditToBlockAuthor,
 	>;
+	type WeightInfo = pallet_asset_tx_payment::weights::SubstrateWeight<Runtime>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = AssetTxHelper;
 }
 
 impl pallet_asset_conversion_tx_payment::Config for Runtime {
@@ -579,6 +583,9 @@ impl pallet_asset_conversion_tx_payment::Config for Runtime {
 		AssetConversion,
 		Native,
 	>;
+	type WeightInfo = pallet_asset_conversion_tx_payment::weights::SubstrateWeight<Runtime>;
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = AssetConversionTxHelper;
 }
 
 impl pallet_skip_feeless_payment::Config for Runtime {
@@ -1407,29 +1414,33 @@ where
 			// so the actual block number is `n`.
 			.saturating_sub(1);
 		let era = Era::mortal(period, current_block);
-		let extra = (
-			frame_system::CheckNonZeroSender::<Runtime>::new(),
-			frame_system::CheckSpecVersion::<Runtime>::new(),
-			frame_system::CheckTxVersion::<Runtime>::new(),
-			frame_system::CheckGenesis::<Runtime>::new(),
-			frame_system::CheckEra::<Runtime>::from(era),
-			frame_system::CheckNonce::<Runtime>::from(nonce),
-			frame_system::CheckWeight::<Runtime>::new(),
+		let tx_ext: TxExtension = (
+			(
+				frame_system::CheckNonZeroSender::<Runtime>::new(),
+				frame_system::CheckSpecVersion::<Runtime>::new(),
+				frame_system::CheckTxVersion::<Runtime>::new(),
+				frame_system::CheckGenesis::<Runtime>::new(),
+				frame_system::CheckEra::<Runtime>::from(era),
+				frame_system::CheckNonce::<Runtime>::from(nonce),
+				frame_system::CheckWeight::<Runtime>::new(),
+			)
+				.into(),
 			pallet_skip_feeless_payment::SkipCheckIfFeeless::from(
 				pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::<Runtime>::from(
 					tip, None,
 				),
 			),
 		);
-		let raw_payload = SignedPayload::new(call, extra)
+
+		let raw_payload = SignedPayload::new(call, tx_ext)
 			.map_err(|e| {
 				log::warn!("Unable to create signed payload: {:?}", e);
 			})
 			.ok()?;
 		let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
 		let address = Indices::unlookup(account);
-		let (call, extra, _) = raw_payload.deconstruct();
-		Some((call, (address, signature, extra)))
+		let (call, tx_ext, _) = raw_payload.deconstruct();
+		Some((call, (address, signature, tx_ext)))
 	}
 }
 
@@ -2280,19 +2291,21 @@ pub type Block = generic::Block<Header, UncheckedExtrinsic>;
 pub type SignedBlock = generic::SignedBlock<Block>;
 /// BlockId type as expected by this runtime.
 pub type BlockId = generic::BlockId<Block>;
-/// The SignedExtension to the basic transaction logic.
+/// The TransactionExtension to the basic transaction logic.
 ///
 /// When you change this, you **MUST** modify [`sign`] in `bin/node/testing/src/keyring.rs`!
 ///
 /// [`sign`]: <../../testing/src/keyring.rs.html>
-pub type SignedExtra = (
-	frame_system::CheckNonZeroSender<Runtime>,
-	frame_system::CheckSpecVersion<Runtime>,
-	frame_system::CheckTxVersion<Runtime>,
-	frame_system::CheckGenesis<Runtime>,
-	frame_system::CheckEra<Runtime>,
-	frame_system::CheckNonce<Runtime>,
-	frame_system::CheckWeight<Runtime>,
+pub type TxExtension = (
+	(
+		frame_system::CheckNonZeroSender<Runtime>,
+		frame_system::CheckSpecVersion<Runtime>,
+		frame_system::CheckTxVersion<Runtime>,
+		frame_system::CheckGenesis<Runtime>,
+		frame_system::CheckEra<Runtime>,
+		frame_system::CheckNonce<Runtime>,
+		frame_system::CheckWeight<Runtime>,
+	),
 	pallet_skip_feeless_payment::SkipCheckIfFeeless<
 		Runtime,
 		pallet_asset_conversion_tx_payment::ChargeAssetTxPayment<Runtime>,
@@ -2301,11 +2314,11 @@ pub type SignedExtra = (
 
 /// Unchecked extrinsic type as expected by this runtime.
 pub type UncheckedExtrinsic =
-	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 /// The payload being signed in transactions.
-pub type SignedPayload = generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = generic::SignedPayload<RuntimeCall, TxExtension>;
 /// Extrinsic type that has already been checked.
-pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, SignedExtra>;
+pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, TxExtension>;
 /// Executive: handles dispatch to the various modules.
 pub type Executive = frame_executive::Executive<
 	Runtime,
@@ -2360,6 +2373,106 @@ mod mmr {
 	pub type Hashing = <Runtime as pallet_mmr::Config>::Hashing;
 }
 
+#[cfg(feature = "runtime-benchmarks")]
+pub struct AssetConversionTxHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl pallet_asset_conversion_tx_payment::BenchmarkHelperTrait<AccountId, u32, u32>
+	for AssetConversionTxHelper
+{
+	fn create_asset_id_parameter(seed: u32) -> (u32, u32) {
+		(seed, seed)
+	}
+
+	fn setup_balances_and_pool(asset_id: u32, account: AccountId) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		assert_ok!(Assets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			account.clone().into(), /* owner */
+			true,                   /* is_sufficient */
+			1,
+		));
+
+		let lp_provider = account.clone();
+		let _ = Balances::deposit_creating(&lp_provider, ((u64::MAX as u128) * 100).into());
+		assert_ok!(Assets::mint_into(
+			asset_id.into(),
+			&lp_provider,
+			((u64::MAX as u128) * 100).into()
+		));
+
+		let token_native = Box::new(NativeOrWithId::Native);
+		let token_second = Box::new(NativeOrWithId::WithId(asset_id));
+
+		assert_ok!(AssetConversion::create_pool(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native.clone(),
+			token_second.clone()
+		));
+
+		assert_ok!(AssetConversion::add_liquidity(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native,
+			token_second,
+			u64::MAX.into(), // 1 desired
+			u64::MAX.into(), // 2 desired
+			1,               // 1 min
+			1,               // 2 min
+			lp_provider,
+		));
+	}
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub struct AssetTxHelper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl pallet_asset_tx_payment::BenchmarkHelperTrait<AccountId, u32, u32> for AssetTxHelper {
+	fn create_asset_id_parameter(seed: u32) -> (u32, u32) {
+		(seed, seed)
+	}
+
+	fn setup_balances_and_pool(asset_id: u32, account: AccountId) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		assert_ok!(Assets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			account.clone().into(), /* owner */
+			true,                   /* is_sufficient */
+			1,
+		));
+
+		let lp_provider = account.clone();
+		let _ = Balances::deposit_creating(&lp_provider, ((u64::MAX as u128) * 100).into());
+		assert_ok!(Assets::mint_into(
+			asset_id.into(),
+			&lp_provider,
+			((u64::MAX as u128) * 100).into()
+		));
+
+		let token_native = Box::new(NativeOrWithId::Native);
+		let token_second = Box::new(NativeOrWithId::WithId(asset_id));
+
+		assert_ok!(AssetConversion::create_pool(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native.clone(),
+			token_second.clone()
+		));
+
+		assert_ok!(AssetConversion::add_liquidity(
+			RuntimeOrigin::signed(lp_provider.clone()),
+			token_native,
+			token_second,
+			u64::MAX.into(), // 1 desired
+			u64::MAX.into(), // 2 desired
+			1,               // 1 min
+			1,               // 2 min
+			lp_provider,
+		));
+	}
+}
+
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
 	frame_benchmarking::define_benchmarks!(
@@ -2380,6 +2493,9 @@ mod benches {
 		[tasks_example, TasksExample]
 		[pallet_democracy, Democracy]
 		[pallet_asset_conversion, AssetConversion]
+		[pallet_asset_conversion_tx_payment, AssetConversionTxPayment]
+		[pallet_asset_tx_payment, AssetTxPayment]
+		[pallet_transaction_payment, TransactionPayment]
 		[pallet_election_provider_multi_phase, ElectionProviderMultiPhase]
 		[pallet_election_provider_support_benchmarking, EPSBench::<Runtime>]
 		[pallet_elections_phragmen, Elections]
@@ -2413,6 +2529,7 @@ mod benches {
 		[pallet_state_trie_migration, StateTrieMigration]
 		[pallet_sudo, Sudo]
 		[frame_system, SystemBench::<Runtime>]
+		[frame_system_extensions, SystemExtensionsBench::<Runtime>]
 		[pallet_timestamp, Timestamp]
 		[pallet_tips, Tips]
 		[pallet_transaction_storage, TransactionStorage]
@@ -2960,6 +3077,7 @@ impl_runtime_apis! {
 			use pallet_offences_benchmarking::Pallet as OffencesBench;
 			use pallet_election_provider_support_benchmarking::Pallet as EPSBench;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use baseline::Pallet as BaselineBench;
 			use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;
 
@@ -2984,6 +3102,7 @@ impl_runtime_apis! {
 			use pallet_offences_benchmarking::Pallet as OffencesBench;
 			use pallet_election_provider_support_benchmarking::Pallet as EPSBench;
 			use frame_system_benchmarking::Pallet as SystemBench;
+			use frame_system_benchmarking::extensions::Pallet as SystemExtensionsBench;
 			use baseline::Pallet as BaselineBench;
 			use pallet_nomination_pools_benchmarking::Pallet as NominationPoolsBench;
 
diff --git a/substrate/bin/node/testing/src/bench.rs b/substrate/bin/node/testing/src/bench.rs
index df302a6453b..ccf79eed884 100644
--- a/substrate/bin/node/testing/src/bench.rs
+++ b/substrate/bin/node/testing/src/bench.rs
@@ -51,6 +51,7 @@ use sp_core::{ed25519, sr25519, traits::SpawnNamed, Pair, Public};
 use sp_crypto_hashing::blake2_256;
 use sp_inherents::InherentData;
 use sp_runtime::{
+	generic::{ExtrinsicFormat, Preamble},
 	traits::{Block as BlockT, IdentifyAccount, Verify},
 	OpaqueExtrinsic,
 };
@@ -295,10 +296,10 @@ impl<'a> Iterator for BlockContentIterator<'a> {
 
 		let signed = self.keyring.sign(
 			CheckedExtrinsic {
-				signed: Some((
+				format: ExtrinsicFormat::Signed(
 					sender,
-					signed_extra(0, kitchensink_runtime::ExistentialDeposit::get() + 1),
-				)),
+					tx_ext(0, kitchensink_runtime::ExistentialDeposit::get() + 1),
+				),
 				function: match self.content.block_type {
 					BlockType::RandomTransfersKeepAlive =>
 						RuntimeCall::Balances(BalancesCall::transfer_keep_alive {
@@ -562,11 +563,11 @@ impl BenchKeyring {
 		tx_version: u32,
 		genesis_hash: [u8; 32],
 	) -> UncheckedExtrinsic {
-		match xt.signed {
-			Some((signed, extra)) => {
+		match xt.format {
+			ExtrinsicFormat::Signed(signed, tx_ext) => {
 				let payload = (
 					xt.function,
-					extra.clone(),
+					tx_ext.clone(),
 					spec_version,
 					tx_version,
 					genesis_hash,
@@ -581,11 +582,20 @@ impl BenchKeyring {
 					}
 				});
 				UncheckedExtrinsic {
-					signature: Some((sp_runtime::MultiAddress::Id(signed), signature, extra)),
+					preamble: Preamble::Signed(
+						sp_runtime::MultiAddress::Id(signed),
+						signature,
+						tx_ext,
+					),
 					function: payload.0,
 				}
 			},
-			None => UncheckedExtrinsic { signature: None, function: xt.function },
+			ExtrinsicFormat::Bare =>
+				UncheckedExtrinsic { preamble: Preamble::Bare, function: xt.function },
+			ExtrinsicFormat::General(tx_ext) => UncheckedExtrinsic {
+				preamble: sp_runtime::generic::Preamble::General(tx_ext),
+				function: xt.function,
+			},
 		}
 	}
 
diff --git a/substrate/bin/node/testing/src/keyring.rs b/substrate/bin/node/testing/src/keyring.rs
index f712191bed6..13daf915325 100644
--- a/substrate/bin/node/testing/src/keyring.rs
+++ b/substrate/bin/node/testing/src/keyring.rs
@@ -19,13 +19,13 @@
 //! Test accounts.
 
 use codec::Encode;
-use kitchensink_runtime::{CheckedExtrinsic, SessionKeys, SignedExtra, UncheckedExtrinsic};
+use kitchensink_runtime::{CheckedExtrinsic, SessionKeys, TxExtension, UncheckedExtrinsic};
 use node_cli::chain_spec::get_from_seed;
 use node_primitives::{AccountId, Balance, Nonce};
 use sp_core::{ecdsa, ed25519, sr25519};
 use sp_crypto_hashing::blake2_256;
 use sp_keyring::AccountKeyring;
-use sp_runtime::generic::Era;
+use sp_runtime::generic::{Era, ExtrinsicFormat};
 
 /// Alice's account id.
 pub fn alice() -> AccountId {
@@ -70,15 +70,18 @@ pub fn session_keys_from_seed(seed: &str) -> SessionKeys {
 }
 
 /// Returns transaction extra.
-pub fn signed_extra(nonce: Nonce, extra_fee: Balance) -> SignedExtra {
+pub fn tx_ext(nonce: Nonce, extra_fee: Balance) -> TxExtension {
 	(
-		frame_system::CheckNonZeroSender::new(),
-		frame_system::CheckSpecVersion::new(),
-		frame_system::CheckTxVersion::new(),
-		frame_system::CheckGenesis::new(),
-		frame_system::CheckEra::from(Era::mortal(256, 0)),
-		frame_system::CheckNonce::from(nonce),
-		frame_system::CheckWeight::new(),
+		(
+			frame_system::CheckNonZeroSender::new(),
+			frame_system::CheckSpecVersion::new(),
+			frame_system::CheckTxVersion::new(),
+			frame_system::CheckGenesis::new(),
+			frame_system::CheckEra::from(Era::mortal(256, 0)),
+			frame_system::CheckNonce::from(nonce),
+			frame_system::CheckWeight::new(),
+		)
+			.into(),
 		pallet_skip_feeless_payment::SkipCheckIfFeeless::from(
 			pallet_asset_conversion_tx_payment::ChargeAssetTxPayment::from(extra_fee, None),
 		),
@@ -92,10 +95,10 @@ pub fn sign(
 	tx_version: u32,
 	genesis_hash: [u8; 32],
 ) -> UncheckedExtrinsic {
-	match xt.signed {
-		Some((signed, extra)) => {
+	match xt.format {
+		ExtrinsicFormat::Signed(signed, tx_ext) => {
 			let payload =
-				(xt.function, extra.clone(), spec_version, tx_version, genesis_hash, genesis_hash);
+				(xt.function, tx_ext.clone(), spec_version, tx_version, genesis_hash, genesis_hash);
 			let key = AccountKeyring::from_account_id(&signed).unwrap();
 			let signature =
 				payload
@@ -108,10 +111,21 @@ pub fn sign(
 					})
 					.into();
 			UncheckedExtrinsic {
-				signature: Some((sp_runtime::MultiAddress::Id(signed), signature, extra)),
+				preamble: sp_runtime::generic::Preamble::Signed(
+					sp_runtime::MultiAddress::Id(signed),
+					signature,
+					tx_ext,
+				),
 				function: payload.0,
 			}
 		},
-		None => UncheckedExtrinsic { signature: None, function: xt.function },
+		ExtrinsicFormat::Bare => UncheckedExtrinsic {
+			preamble: sp_runtime::generic::Preamble::Bare,
+			function: xt.function,
+		},
+		ExtrinsicFormat::General(tx_ext) => UncheckedExtrinsic {
+			preamble: sp_runtime::generic::Preamble::General(tx_ext),
+			function: xt.function,
+		},
 	}
 }
diff --git a/substrate/client/api/src/notifications/tests.rs b/substrate/client/api/src/notifications/tests.rs
index fba829b1cf9..7afdcbd9543 100644
--- a/substrate/client/api/src/notifications/tests.rs
+++ b/substrate/client/api/src/notifications/tests.rs
@@ -18,7 +18,10 @@
 
 use super::*;
 
-use sp_runtime::testing::{Block as RawBlock, ExtrinsicWrapper, H256 as Hash};
+use sp_runtime::{
+	generic::UncheckedExtrinsic,
+	testing::{Block as RawBlock, H256 as Hash},
+};
 use std::iter::{empty, Empty};
 
 type TestChangeSet = (
@@ -50,7 +53,7 @@ impl PartialEq for StorageChangeSet {
 	}
 }
 
-type Block = RawBlock<ExtrinsicWrapper<Hash>>;
+type Block = RawBlock<UncheckedExtrinsic<u64, substrate_test_runtime::RuntimeCall, (), ()>>;
 
 #[test]
 fn triggering_change_should_notify_wildcard_listeners() {
diff --git a/substrate/client/db/benches/state_access.rs b/substrate/client/db/benches/state_access.rs
index e47559e710d..9f3b8ca77c2 100644
--- a/substrate/client/db/benches/state_access.rs
+++ b/substrate/client/db/benches/state_access.rs
@@ -22,12 +22,13 @@ use sc_client_api::{Backend as _, BlockImportOperation, NewBlockState, StateBack
 use sc_client_db::{Backend, BlocksPruning, DatabaseSettings, DatabaseSource, PruningMode};
 use sp_core::H256;
 use sp_runtime::{
-	testing::{Block as RawBlock, ExtrinsicWrapper, Header},
+	generic::UncheckedExtrinsic,
+	testing::{Block as RawBlock, Header, MockCallU64},
 	StateVersion, Storage,
 };
 use tempfile::TempDir;
 
-pub(crate) type Block = RawBlock<ExtrinsicWrapper<u64>>;
+pub(crate) type Block = RawBlock<UncheckedExtrinsic<u64, MockCallU64, (), ()>>;
 
 fn insert_blocks(db: &Backend<Block>, storage: Vec<(Vec<u8>, Vec<u8>)>) -> H256 {
 	let mut op = db.begin_operation().unwrap();
diff --git a/substrate/client/db/src/lib.rs b/substrate/client/db/src/lib.rs
index 0faa90dfc4f..f22022ef29a 100644
--- a/substrate/client/db/src/lib.rs
+++ b/substrate/client/db/src/lib.rs
@@ -2573,7 +2573,8 @@ pub(crate) mod tests {
 	use sp_blockchain::{lowest_common_ancestor, tree_route};
 	use sp_core::H256;
 	use sp_runtime::{
-		testing::{Block as RawBlock, ExtrinsicWrapper, Header},
+		generic::UncheckedExtrinsic,
+		testing::{Block as RawBlock, Header, MockCallU64},
 		traits::{BlakeTwo256, Hash},
 		ConsensusEngineId, StateVersion,
 	};
@@ -2581,7 +2582,8 @@ pub(crate) mod tests {
 	const CONS0_ENGINE_ID: ConsensusEngineId = *b"CON0";
 	const CONS1_ENGINE_ID: ConsensusEngineId = *b"CON1";
 
-	pub(crate) type Block = RawBlock<ExtrinsicWrapper<u64>>;
+	type UncheckedXt = UncheckedExtrinsic<u64, MockCallU64, (), ()>;
+	pub(crate) type Block = RawBlock<UncheckedXt>;
 
 	pub fn insert_header(
 		backend: &Backend<Block>,
@@ -2600,7 +2602,7 @@ pub(crate) mod tests {
 		parent_hash: H256,
 		_changes: Option<Vec<(Vec<u8>, Vec<u8>)>>,
 		extrinsics_root: H256,
-		body: Vec<ExtrinsicWrapper<u64>>,
+		body: Vec<UncheckedXt>,
 		transaction_index: Option<Vec<IndexOperation>>,
 	) -> Result<H256, sp_blockchain::Error> {
 		use sp_runtime::testing::Digest;
@@ -3414,7 +3416,7 @@ pub(crate) mod tests {
 					prev_hash,
 					None,
 					Default::default(),
-					vec![i.into()],
+					vec![UncheckedXt::new_transaction(i.into(), ())],
 					None,
 				)
 				.unwrap();
@@ -3436,11 +3438,20 @@ pub(crate) mod tests {
 				assert_eq!(None, bc.body(blocks[0]).unwrap());
 				assert_eq!(None, bc.body(blocks[1]).unwrap());
 				assert_eq!(None, bc.body(blocks[2]).unwrap());
-				assert_eq!(Some(vec![3.into()]), bc.body(blocks[3]).unwrap());
-				assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+				assert_eq!(
+					Some(vec![UncheckedXt::new_transaction(3.into(), ())]),
+					bc.body(blocks[3]).unwrap()
+				);
+				assert_eq!(
+					Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+					bc.body(blocks[4]).unwrap()
+				);
 			} else {
 				for i in 0..5 {
-					assert_eq!(Some(vec![(i as u64).into()]), bc.body(blocks[i]).unwrap());
+					assert_eq!(
+						Some(vec![UncheckedXt::new_transaction((i as u64).into(), ())]),
+						bc.body(blocks[i]).unwrap()
+					);
 				}
 			}
 		}
@@ -3464,7 +3475,7 @@ pub(crate) mod tests {
 					prev_hash,
 					None,
 					Default::default(),
-					vec![i.into()],
+					vec![UncheckedXt::new_transaction(i.into(), ())],
 					None,
 				)
 				.unwrap();
@@ -3473,16 +3484,26 @@ pub(crate) mod tests {
 			}
 
 			// insert a fork at block 2
-			let fork_hash_root =
-				insert_block(&backend, 2, blocks[1], None, H256::random(), vec![2.into()], None)
-					.unwrap();
+			let fork_hash_root = insert_block(
+				&backend,
+				2,
+				blocks[1],
+				None,
+				H256::random(),
+				vec![UncheckedXt::new_transaction(2.into(), ())],
+				None,
+			)
+			.unwrap();
 			insert_block(
 				&backend,
 				3,
 				fork_hash_root,
 				None,
 				H256::random(),
-				vec![3.into(), 11.into()],
+				vec![
+					UncheckedXt::new_transaction(3.into(), ()),
+					UncheckedXt::new_transaction(11.into(), ()),
+				],
 				None,
 			)
 			.unwrap();
@@ -3492,7 +3513,10 @@ pub(crate) mod tests {
 			backend.commit_operation(op).unwrap();
 
 			let bc = backend.blockchain();
-			assert_eq!(Some(vec![2.into()]), bc.body(fork_hash_root).unwrap());
+			assert_eq!(
+				Some(vec![UncheckedXt::new_transaction(2.into(), ())]),
+				bc.body(fork_hash_root).unwrap()
+			);
 
 			for i in 1..5 {
 				let mut op = backend.begin_operation().unwrap();
@@ -3506,16 +3530,28 @@ pub(crate) mod tests {
 				assert_eq!(None, bc.body(blocks[1]).unwrap());
 				assert_eq!(None, bc.body(blocks[2]).unwrap());
 
-				assert_eq!(Some(vec![3.into()]), bc.body(blocks[3]).unwrap());
-				assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+				assert_eq!(
+					Some(vec![UncheckedXt::new_transaction(3.into(), ())]),
+					bc.body(blocks[3]).unwrap()
+				);
+				assert_eq!(
+					Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+					bc.body(blocks[4]).unwrap()
+				);
 			} else {
 				for i in 0..5 {
-					assert_eq!(Some(vec![(i as u64).into()]), bc.body(blocks[i]).unwrap());
+					assert_eq!(
+						Some(vec![UncheckedXt::new_transaction((i as u64).into(), ())]),
+						bc.body(blocks[i]).unwrap()
+					);
 				}
 			}
 
 			if matches!(pruning, BlocksPruning::KeepAll) {
-				assert_eq!(Some(vec![2.into()]), bc.body(fork_hash_root).unwrap());
+				assert_eq!(
+					Some(vec![UncheckedXt::new_transaction(2.into(), ())]),
+					bc.body(fork_hash_root).unwrap()
+				);
 			} else {
 				assert_eq!(None, bc.body(fork_hash_root).unwrap());
 			}
@@ -3536,8 +3572,16 @@ pub(crate) mod tests {
 		let backend = Backend::<Block>::new_test_with_tx_storage(BlocksPruning::Some(10), 10);
 
 		let make_block = |index, parent, val: u64| {
-			insert_block(&backend, index, parent, None, H256::random(), vec![val.into()], None)
-				.unwrap()
+			insert_block(
+				&backend,
+				index,
+				parent,
+				None,
+				H256::random(),
+				vec![UncheckedXt::new_transaction(val.into(), ())],
+				None,
+			)
+			.unwrap()
 		};
 
 		let block_0 = make_block(0, Default::default(), 0x00);
@@ -3565,18 +3609,30 @@ pub(crate) mod tests {
 		let bc = backend.blockchain();
 		assert_eq!(None, bc.body(block_1b).unwrap());
 		assert_eq!(None, bc.body(block_2b).unwrap());
-		assert_eq!(Some(vec![0x00.into()]), bc.body(block_0).unwrap());
-		assert_eq!(Some(vec![0x1a.into()]), bc.body(block_1a).unwrap());
-		assert_eq!(Some(vec![0x2a.into()]), bc.body(block_2a).unwrap());
-		assert_eq!(Some(vec![0x3a.into()]), bc.body(block_3a).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0x00.into(), ())]),
+			bc.body(block_0).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0x1a.into(), ())]),
+			bc.body(block_1a).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0x2a.into(), ())]),
+			bc.body(block_2a).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0x3a.into(), ())]),
+			bc.body(block_3a).unwrap()
+		);
 	}
 
 	#[test]
 	fn indexed_data_block_body() {
 		let backend = Backend::<Block>::new_test_with_tx_storage(BlocksPruning::Some(1), 10);
 
-		let x0 = ExtrinsicWrapper::from(0u64).encode();
-		let x1 = ExtrinsicWrapper::from(1u64).encode();
+		let x0 = UncheckedXt::new_transaction(0.into(), ()).encode();
+		let x1 = UncheckedXt::new_transaction(1.into(), ()).encode();
 		let x0_hash = <HashingFor<Block> as sp_core::Hasher>::hash(&x0[1..]);
 		let x1_hash = <HashingFor<Block> as sp_core::Hasher>::hash(&x1[1..]);
 		let index = vec![
@@ -3597,7 +3653,10 @@ pub(crate) mod tests {
 			Default::default(),
 			None,
 			Default::default(),
-			vec![0u64.into(), 1u64.into()],
+			vec![
+				UncheckedXt::new_transaction(0.into(), ()),
+				UncheckedXt::new_transaction(1.into(), ()),
+			],
 			Some(index),
 		)
 		.unwrap();
@@ -3619,8 +3678,9 @@ pub(crate) mod tests {
 	fn index_invalid_size() {
 		let backend = Backend::<Block>::new_test_with_tx_storage(BlocksPruning::Some(1), 10);
 
-		let x0 = ExtrinsicWrapper::from(0u64).encode();
-		let x1 = ExtrinsicWrapper::from(1u64).encode();
+		let x0 = UncheckedXt::new_transaction(0.into(), ()).encode();
+		let x1 = UncheckedXt::new_transaction(1.into(), ()).encode();
+
 		let x0_hash = <HashingFor<Block> as sp_core::Hasher>::hash(&x0[..]);
 		let x1_hash = <HashingFor<Block> as sp_core::Hasher>::hash(&x1[..]);
 		let index = vec![
@@ -3641,7 +3701,10 @@ pub(crate) mod tests {
 			Default::default(),
 			None,
 			Default::default(),
-			vec![0u64.into(), 1u64.into()],
+			vec![
+				UncheckedXt::new_transaction(0.into(), ()),
+				UncheckedXt::new_transaction(1.into(), ()),
+			],
 			Some(index),
 		)
 		.unwrap();
@@ -3655,7 +3718,7 @@ pub(crate) mod tests {
 		let backend = Backend::<Block>::new_test_with_tx_storage(BlocksPruning::Some(2), 10);
 		let mut blocks = Vec::new();
 		let mut prev_hash = Default::default();
-		let x1 = ExtrinsicWrapper::from(0u64).encode();
+		let x1 = UncheckedXt::new_transaction(0.into(), ()).encode();
 		let x1_hash = <HashingFor<Block> as sp_core::Hasher>::hash(&x1[1..]);
 		for i in 0..10 {
 			let mut index = Vec::new();
@@ -3675,7 +3738,7 @@ pub(crate) mod tests {
 				prev_hash,
 				None,
 				Default::default(),
-				vec![i.into()],
+				vec![UncheckedXt::new_transaction(i.into(), ())],
 				Some(index),
 			)
 			.unwrap();
@@ -3709,7 +3772,7 @@ pub(crate) mod tests {
 				prev_hash,
 				None,
 				Default::default(),
-				vec![i.into()],
+				vec![UncheckedXt::new_transaction(i.into(), ())],
 				None,
 			)
 			.unwrap();
@@ -3724,7 +3787,7 @@ pub(crate) mod tests {
 				blocks[1],
 				None,
 				sp_core::H256::random(),
-				vec![i.into()],
+				vec![UncheckedXt::new_transaction(i.into(), ())],
 				None,
 			)
 			.unwrap();
@@ -3738,7 +3801,7 @@ pub(crate) mod tests {
 			blocks[0],
 			None,
 			sp_core::H256::random(),
-			vec![42.into()],
+			vec![UncheckedXt::new_transaction(42.into(), ())],
 			None,
 		)
 		.unwrap();
@@ -4211,7 +4274,7 @@ pub(crate) mod tests {
 				prev_hash,
 				None,
 				Default::default(),
-				vec![i.into()],
+				vec![UncheckedXt::new_transaction(i.into(), ())],
 				None,
 			)
 			.unwrap();
@@ -4226,7 +4289,10 @@ pub(crate) mod tests {
 
 		// Check that we can properly access values when there is reference count
 		// but no value.
-		assert_eq!(Some(vec![1.into()]), bc.body(blocks[1]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(1.into(), ())]),
+			bc.body(blocks[1]).unwrap()
+		);
 
 		// Block 1 gets pinned three times
 		backend.pin_block(blocks[1]).unwrap();
@@ -4243,27 +4309,42 @@ pub(crate) mod tests {
 
 		// Block 0, 1, 2, 3 are pinned, so all values should be cached.
 		// Block 4 is inside the pruning window, its value is in db.
-		assert_eq!(Some(vec![0.into()]), bc.body(blocks[0]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0.into(), ())]),
+			bc.body(blocks[0]).unwrap()
+		);
 
-		assert_eq!(Some(vec![1.into()]), bc.body(blocks[1]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(1.into(), ())]),
+			bc.body(blocks[1]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(1))),
 			bc.justifications(blocks[1]).unwrap()
 		);
 
-		assert_eq!(Some(vec![2.into()]), bc.body(blocks[2]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(2.into(), ())]),
+			bc.body(blocks[2]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(2))),
 			bc.justifications(blocks[2]).unwrap()
 		);
 
-		assert_eq!(Some(vec![3.into()]), bc.body(blocks[3]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(3.into(), ())]),
+			bc.body(blocks[3]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(3))),
 			bc.justifications(blocks[3]).unwrap()
 		);
 
-		assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+			bc.body(blocks[4]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(4))),
 			bc.justifications(blocks[4]).unwrap()
@@ -4294,7 +4375,10 @@ pub(crate) mod tests {
 		assert!(bc.justifications(blocks[1]).unwrap().is_none());
 
 		// Block 4 is inside the pruning window and still kept
-		assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+			bc.body(blocks[4]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(4))),
 			bc.justifications(blocks[4]).unwrap()
@@ -4302,9 +4386,16 @@ pub(crate) mod tests {
 
 		// Block tree:
 		//   0 -> 1 -> 2 -> 3 -> 4 -> 5
-		let hash =
-			insert_block(&backend, 5, prev_hash, None, Default::default(), vec![5.into()], None)
-				.unwrap();
+		let hash = insert_block(
+			&backend,
+			5,
+			prev_hash,
+			None,
+			Default::default(),
+			vec![UncheckedXt::new_transaction(5.into(), ())],
+			None,
+		)
+		.unwrap();
 		blocks.push(hash);
 
 		backend.pin_block(blocks[4]).unwrap();
@@ -4319,12 +4410,18 @@ pub(crate) mod tests {
 		assert!(bc.body(blocks[2]).unwrap().is_none());
 		assert!(bc.body(blocks[3]).unwrap().is_none());
 
-		assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+			bc.body(blocks[4]).unwrap()
+		);
 		assert_eq!(
 			Some(Justifications::from(build_justification(4))),
 			bc.justifications(blocks[4]).unwrap()
 		);
-		assert_eq!(Some(vec![5.into()]), bc.body(blocks[5]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(5.into(), ())]),
+			bc.body(blocks[5]).unwrap()
+		);
 		assert!(bc.header(blocks[5]).ok().flatten().is_some());
 
 		backend.unpin_block(blocks[4]);
@@ -4334,9 +4431,16 @@ pub(crate) mod tests {
 		// Append a justification to block 5.
 		backend.append_justification(blocks[5], ([0, 0, 0, 1], vec![42])).unwrap();
 
-		let hash =
-			insert_block(&backend, 6, blocks[5], None, Default::default(), vec![6.into()], None)
-				.unwrap();
+		let hash = insert_block(
+			&backend,
+			6,
+			blocks[5],
+			None,
+			Default::default(),
+			vec![UncheckedXt::new_transaction(6.into(), ())],
+			None,
+		)
+		.unwrap();
 		blocks.push(hash);
 
 		// Pin block 5 so it gets loaded into the cache on prune
@@ -4349,7 +4453,10 @@ pub(crate) mod tests {
 		op.mark_finalized(blocks[6], None).unwrap();
 		backend.commit_operation(op).unwrap();
 
-		assert_eq!(Some(vec![5.into()]), bc.body(blocks[5]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(5.into(), ())]),
+			bc.body(blocks[5]).unwrap()
+		);
 		assert!(bc.header(blocks[5]).ok().flatten().is_some());
 		let mut expected = Justifications::from(build_justification(5));
 		expected.append(([0, 0, 0, 1], vec![42]));
@@ -4371,7 +4478,7 @@ pub(crate) mod tests {
 				prev_hash,
 				None,
 				Default::default(),
-				vec![i.into()],
+				vec![UncheckedXt::new_transaction(i.into(), ())],
 				None,
 			)
 			.unwrap();
@@ -4387,16 +4494,26 @@ pub(crate) mod tests {
 		// Block tree:
 		//   0 -> 1 -> 2 -> 3 -> 4
 		//        \ -> 2 -> 3
-		let fork_hash_root =
-			insert_block(&backend, 2, blocks[1], None, H256::random(), vec![2.into()], None)
-				.unwrap();
+		let fork_hash_root = insert_block(
+			&backend,
+			2,
+			blocks[1],
+			None,
+			H256::random(),
+			vec![UncheckedXt::new_transaction(2.into(), ())],
+			None,
+		)
+		.unwrap();
 		let fork_hash_3 = insert_block(
 			&backend,
 			3,
 			fork_hash_root,
 			None,
 			H256::random(),
-			vec![3.into(), 11.into()],
+			vec![
+				UncheckedXt::new_transaction(3.into(), ()),
+				UncheckedXt::new_transaction(11.into(), ()),
+			],
 			None,
 		)
 		.unwrap();
@@ -4417,14 +4534,35 @@ pub(crate) mod tests {
 		}
 
 		let bc = backend.blockchain();
-		assert_eq!(Some(vec![0.into()]), bc.body(blocks[0]).unwrap());
-		assert_eq!(Some(vec![1.into()]), bc.body(blocks[1]).unwrap());
-		assert_eq!(Some(vec![2.into()]), bc.body(blocks[2]).unwrap());
-		assert_eq!(Some(vec![3.into()]), bc.body(blocks[3]).unwrap());
-		assert_eq!(Some(vec![4.into()]), bc.body(blocks[4]).unwrap());
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(0.into(), ())]),
+			bc.body(blocks[0]).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(1.into(), ())]),
+			bc.body(blocks[1]).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(2.into(), ())]),
+			bc.body(blocks[2]).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(3.into(), ())]),
+			bc.body(blocks[3]).unwrap()
+		);
+		assert_eq!(
+			Some(vec![UncheckedXt::new_transaction(4.into(), ())]),
+			bc.body(blocks[4]).unwrap()
+		);
 		// Check the fork hashes.
 		assert_eq!(None, bc.body(fork_hash_root).unwrap());
-		assert_eq!(Some(vec![3.into(), 11.into()]), bc.body(fork_hash_3).unwrap());
+		assert_eq!(
+			Some(vec![
+				UncheckedXt::new_transaction(3.into(), ()),
+				UncheckedXt::new_transaction(11.into(), ())
+			]),
+			bc.body(fork_hash_3).unwrap()
+		);
 
 		// Unpin all blocks, except the forked one.
 		for block in &blocks {
diff --git a/substrate/client/db/src/utils.rs b/substrate/client/db/src/utils.rs
index abf9c4629ce..d2a5f7e718a 100644
--- a/substrate/client/db/src/utils.rs
+++ b/substrate/client/db/src/utils.rs
@@ -582,14 +582,19 @@ impl<'a, 'b> codec::Input for JoinInput<'a, 'b> {
 mod tests {
 	use super::*;
 	use codec::Input;
-	use sp_runtime::testing::{Block as RawBlock, ExtrinsicWrapper};
-	type Block = RawBlock<ExtrinsicWrapper<u32>>;
+	use sp_runtime::{
+		generic::UncheckedExtrinsic,
+		testing::{Block as RawBlock, MockCallU64},
+	};
+
+	pub type UncheckedXt = UncheckedExtrinsic<u64, MockCallU64, (), ()>;
+	type Block = RawBlock<UncheckedXt>;
 
 	#[cfg(feature = "rocksdb")]
 	#[test]
 	fn database_type_subdir_migration() {
 		use std::path::PathBuf;
-		type Block = RawBlock<ExtrinsicWrapper<u64>>;
+		type Block = RawBlock<UncheckedXt>;
 
 		fn check_dir_for_db_type(
 			db_type: DatabaseType,
diff --git a/substrate/client/network-gossip/src/state_machine.rs b/substrate/client/network-gossip/src/state_machine.rs
index 069d7cdba16..f1c830341ea 100644
--- a/substrate/client/network-gossip/src/state_machine.rs
+++ b/substrate/client/network-gossip/src/state_machine.rs
@@ -550,7 +550,8 @@ mod tests {
 		NotificationSenderError, NotificationSenderT as NotificationSender, ReputationChange,
 	};
 	use sp_runtime::{
-		testing::{Block as RawBlock, ExtrinsicWrapper, H256},
+		generic::UncheckedExtrinsic,
+		testing::{Block as RawBlock, MockCallU64, H256},
 		traits::NumberFor,
 	};
 	use std::{
@@ -559,7 +560,7 @@ mod tests {
 		sync::{Arc, Mutex},
 	};
 
-	type Block = RawBlock<ExtrinsicWrapper<u64>>;
+	type Block = RawBlock<UncheckedExtrinsic<u64, MockCallU64, (), ()>>;
 
 	macro_rules! push_msg {
 		($consensus:expr, $topic:expr, $hash: expr, $m:expr) => {
diff --git a/substrate/client/network/sync/src/blocks.rs b/substrate/client/network/sync/src/blocks.rs
index 4988045a478..a115ee94767 100644
--- a/substrate/client/network/sync/src/blocks.rs
+++ b/substrate/client/network/sync/src/blocks.rs
@@ -265,9 +265,12 @@ mod test {
 	use libp2p::PeerId;
 	use sc_network_common::sync::message;
 	use sp_core::H256;
-	use sp_runtime::testing::{Block as RawBlock, ExtrinsicWrapper};
+	use sp_runtime::{
+		generic::UncheckedExtrinsic,
+		testing::{Block as RawBlock, MockCallU64},
+	};
 
-	type Block = RawBlock<ExtrinsicWrapper<u64>>;
+	type Block = RawBlock<UncheckedExtrinsic<u64, MockCallU64, (), ()>>;
 
 	fn is_empty(bc: &BlockCollection<Block>) -> bool {
 		bc.blocks.is_empty() && bc.peer_requests.is_empty()
diff --git a/substrate/client/transaction-pool/src/lib.rs b/substrate/client/transaction-pool/src/lib.rs
index 64b301e6bf3..730cfe36712 100644
--- a/substrate/client/transaction-pool/src/lib.rs
+++ b/substrate/client/transaction-pool/src/lib.rs
@@ -659,8 +659,13 @@ where
 					})
 					.unwrap_or_default()
 					.into_iter()
-					.filter(|tx| tx.is_signed().unwrap_or(true));
-
+					// TODO [#2415]: This isn't really what we mean - we really want a
+					// `tx.is_transaction`, since bare transactions may be gossipped as in the case
+					// of Frontier txs or claims. This will be sorted once we dispense with the
+					// concept of bare transactions and make inherents the only possible type of
+					// extrinsics which are bare. At this point we can change this to
+					// `tx.is_transaction()`.
+					.filter(|tx| !tx.is_bare());
 				let mut resubmitted_to_report = 0;
 
 				resubmit_transactions.extend(block_transactions.into_iter().filter(|tx| {
diff --git a/substrate/frame/alliance/src/weights.rs b/substrate/frame/alliance/src/weights.rs
index b5bb5095720..0b2d1fca43c 100644
--- a/substrate/frame/alliance/src/weights.rs
+++ b/substrate/frame/alliance/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_alliance
+//! Autogenerated weights for `pallet_alliance`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/alliance/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/alliance/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_alliance.
+/// Weight functions needed for `pallet_alliance`.
 pub trait WeightInfo {
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight;
 	fn vote(m: u32, ) -> Weight;
@@ -74,205 +73,209 @@ pub trait WeightInfo {
 	fn abdicate_fellow_status() -> Weight;
 }
 
-/// Weights for pallet_alliance using the Substrate node and recommended hardware.
+/// Weights for `pallet_alliance` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion ProposalOf (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalCount (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Voting (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalCount` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Voting` (r:0 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `653 + m * (32 ±0) + p * (35 ±0)`
+		//  Measured:  `654 + m * (32 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (32 ±0) + p * (36 ±0)`
-		// Minimum execution time: 36_908_000 picoseconds.
-		Weight::from_parts(39_040_304, 6676)
-			// Standard Error: 131
-			.saturating_add(Weight::from_parts(781, 0).saturating_mul(b.into()))
-			// Standard Error: 1_375
-			.saturating_add(Weight::from_parts(48_745, 0).saturating_mul(m.into()))
-			// Standard Error: 1_358
-			.saturating_add(Weight::from_parts(148_047, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_801_000 picoseconds.
+		Weight::from_parts(32_942_969, 6676)
+			// Standard Error: 112
+			.saturating_add(Weight::from_parts(614, 0).saturating_mul(b.into()))
+			// Standard Error: 1_177
+			.saturating_add(Weight::from_parts(45_758, 0).saturating_mul(m.into()))
+			// Standard Error: 1_162
+			.saturating_add(Weight::from_parts(136_600, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[5, 100]`.
 	fn vote(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1042 + m * (64 ±0)`
+		//  Measured:  `1113 + m * (64 ±0)`
 		//  Estimated: `6676 + m * (64 ±0)`
-		// Minimum execution time: 30_166_000 picoseconds.
-		Weight::from_parts(32_798_454, 6676)
-			// Standard Error: 1_432
-			.saturating_add(Weight::from_parts(83_001, 0).saturating_mul(m.into()))
+		// Minimum execution time: 29_705_000 picoseconds.
+		Weight::from_parts(30_274_070, 6676)
+			// Standard Error: 884
+			.saturating_add(Weight::from_parts(71_178, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `576 + m * (96 ±0) + p * (36 ±0)`
+		//  Measured:  `640 + m * (96 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 45_173_000 picoseconds.
-		Weight::from_parts(42_192_020, 6676)
-			// Standard Error: 1_456
-			.saturating_add(Weight::from_parts(66_751, 0).saturating_mul(m.into()))
-			// Standard Error: 1_420
-			.saturating_add(Weight::from_parts(158_161, 0).saturating_mul(p.into()))
+		// Minimum execution time: 38_596_000 picoseconds.
+		Weight::from_parts(36_445_536, 6676)
+			// Standard Error: 1_217
+			.saturating_add(Weight::from_parts(69_976, 0).saturating_mul(m.into()))
+			// Standard Error: 1_187
+			.saturating_add(Weight::from_parts(149_706, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1087 + m * (96 ±0) + p * (39 ±0)`
+		//  Measured:  `1220 + m * (96 ±0) + p * (39 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (40 ±0)`
-		// Minimum execution time: 58_290_000 picoseconds.
-		Weight::from_parts(54_924_919, 6676)
-			// Standard Error: 157
-			.saturating_add(Weight::from_parts(464, 0).saturating_mul(b.into()))
-			// Standard Error: 1_665
-			.saturating_add(Weight::from_parts(73_183, 0).saturating_mul(m.into()))
-			// Standard Error: 1_623
-			.saturating_add(Weight::from_parts(168_318, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(5_u64))
+		// Minimum execution time: 57_602_000 picoseconds.
+		Weight::from_parts(55_147_214, 6676)
+			// Standard Error: 127
+			.saturating_add(Weight::from_parts(1_650, 0).saturating_mul(b.into()))
+			// Standard Error: 1_346
+			.saturating_add(Weight::from_parts(56_056, 0).saturating_mul(m.into()))
+			// Standard Error: 1_312
+			.saturating_add(Weight::from_parts(168_247, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:1 w:0)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `577 + m * (96 ±0) + p * (36 ±0)`
+		//  Measured:  `641 + m * (96 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 46_794_000 picoseconds.
-		Weight::from_parts(43_092_958, 6676)
-			// Standard Error: 1_273
-			.saturating_add(Weight::from_parts(71_054, 0).saturating_mul(m.into()))
-			// Standard Error: 1_257
-			.saturating_add(Weight::from_parts(152_820, 0).saturating_mul(p.into()))
+		// Minimum execution time: 40_755_000 picoseconds.
+		Weight::from_parts(36_953_935, 6676)
+			// Standard Error: 1_177
+			.saturating_add(Weight::from_parts(73_240, 0).saturating_mul(m.into()))
+			// Standard Error: 1_162
+			.saturating_add(Weight::from_parts(149_412, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:1 w:0)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[5, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `684 + m * (96 ±0) + p * (35 ±0)`
+		//  Measured:  `694 + m * (96 ±0) + p * (35 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 47_338_000 picoseconds.
-		Weight::from_parts(41_257_479, 6676)
-			// Standard Error: 119
-			.saturating_add(Weight::from_parts(1_019, 0).saturating_mul(b.into()))
-			// Standard Error: 1_277
-			.saturating_add(Weight::from_parts(78_453, 0).saturating_mul(m.into()))
-			// Standard Error: 1_231
-			.saturating_add(Weight::from_parts(150_991, 0).saturating_mul(p.into()))
+		// Minimum execution time: 41_113_000 picoseconds.
+		Weight::from_parts(36_610_116, 6676)
+			// Standard Error: 92
+			.saturating_add(Weight::from_parts(1_157, 0).saturating_mul(b.into()))
+			// Standard Error: 984
+			.saturating_add(Weight::from_parts(63_050, 0).saturating_mul(m.into()))
+			// Standard Error: 949
+			.saturating_add(Weight::from_parts(150_420, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	/// The range of component `z` is `[0, 100]`.
 	fn init_members(m: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `217`
+		//  Measured:  `250`
 		//  Estimated: `12362`
-		// Minimum execution time: 35_012_000 picoseconds.
-		Weight::from_parts(24_288_079, 12362)
-			// Standard Error: 878
-			.saturating_add(Weight::from_parts(153_615, 0).saturating_mul(m.into()))
-			// Standard Error: 867
-			.saturating_add(Weight::from_parts(129_307, 0).saturating_mul(z.into()))
+		// Minimum execution time: 30_249_000 picoseconds.
+		Weight::from_parts(21_364_868, 12362)
+			// Standard Error: 887
+			.saturating_add(Weight::from_parts(131_624, 0).saturating_mul(m.into()))
+			// Standard Error: 877
+			.saturating_add(Weight::from_parts(105_379, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance DepositOf (r:200 w:50)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:50 w:50)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::DepositOf` (r:200 w:50)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:50 w:50)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `x` is `[1, 100]`.
 	/// The range of component `y` is `[0, 100]`.
 	/// The range of component `z` is `[0, 50]`.
@@ -280,14 +283,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + x * (50 ±0) + y * (51 ±0) + z * (251 ±0)`
 		//  Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)`
-		// Minimum execution time: 309_235_000 picoseconds.
-		Weight::from_parts(311_279_000, 12362)
-			// Standard Error: 26_510
-			.saturating_add(Weight::from_parts(543_475, 0).saturating_mul(x.into()))
-			// Standard Error: 26_382
-			.saturating_add(Weight::from_parts(603_169, 0).saturating_mul(y.into()))
-			// Standard Error: 52_716
-			.saturating_add(Weight::from_parts(16_264_836, 0).saturating_mul(z.into()))
+		// Minimum execution time: 307_414_000 picoseconds.
+		Weight::from_parts(309_960_000, 12362)
+			// Standard Error: 29_278
+			.saturating_add(Weight::from_parts(588_774, 0).saturating_mul(x.into()))
+			// Standard Error: 29_137
+			.saturating_add(Weight::from_parts(563_245, 0).saturating_mul(y.into()))
+			// Standard Error: 58_221
+			.saturating_add(Weight::from_parts(13_947_604, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into())))
@@ -298,397 +301,401 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 			.saturating_add(Weight::from_parts(0, 2539).saturating_mul(y.into()))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(z.into()))
 	}
-	/// Storage: Alliance Rule (r:0 w:1)
-	/// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Rule` (r:0 w:1)
+	/// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`)
 	fn set_rule() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_833_000 picoseconds.
-		Weight::from_parts(9_313_000, 0)
+		// Minimum execution time: 6_156_000 picoseconds.
+		Weight::from_parts(6_560_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Announcements (r:1 w:1)
-	/// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Announcements` (r:1 w:1)
+	/// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`)
 	fn announce() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `246`
+		//  Measured:  `279`
 		//  Estimated: `10187`
-		// Minimum execution time: 12_231_000 picoseconds.
-		Weight::from_parts(12_761_000, 10187)
+		// Minimum execution time: 8_988_000 picoseconds.
+		Weight::from_parts(9_476_000, 10187)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Announcements (r:1 w:1)
-	/// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Announcements` (r:1 w:1)
+	/// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`)
 	fn remove_announcement() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `319`
+		//  Measured:  `352`
 		//  Estimated: `10187`
-		// Minimum execution time: 13_079_000 picoseconds.
-		Weight::from_parts(13_612_000, 10187)
+		// Minimum execution time: 10_126_000 picoseconds.
+		Weight::from_parts(10_755_000, 10187)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:0)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Alliance DepositOf (r:0 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::DepositOf` (r:0 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
 	fn join_alliance() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `468`
+		//  Measured:  `501`
 		//  Estimated: `18048`
-		// Minimum execution time: 44_574_000 picoseconds.
-		Weight::from_parts(46_157_000, 18048)
+		// Minimum execution time: 38_878_000 picoseconds.
+		Weight::from_parts(40_493_000, 18048)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:0)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
 	fn nominate_ally() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `367`
+		//  Measured:  `400`
 		//  Estimated: `18048`
-		// Minimum execution time: 26_114_000 picoseconds.
-		Weight::from_parts(27_069_000, 18048)
+		// Minimum execution time: 23_265_000 picoseconds.
+		Weight::from_parts(24_703_000, 18048)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn elevate_ally() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `12362`
-		// Minimum execution time: 25_882_000 picoseconds.
-		Weight::from_parts(26_923_000, 12362)
+		// Minimum execution time: 23_049_000 picoseconds.
+		Weight::from_parts(23_875_000, 12362)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Alliance Members (r:4 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance RetiringMembers (r:0 w:1)
-	/// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:4 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::RetiringMembers` (r:0 w:1)
+	/// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn give_retirement_notice() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `23734`
-		// Minimum execution time: 34_112_000 picoseconds.
-		Weight::from_parts(35_499_000, 23734)
+		// Minimum execution time: 29_124_000 picoseconds.
+		Weight::from_parts(30_369_000, 23734)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Alliance RetiringMembers (r:1 w:1)
-	/// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
-	/// Storage: Alliance Members (r:1 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance DepositOf (r:1 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Alliance::RetiringMembers` (r:1 w:1)
+	/// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::Members` (r:1 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::DepositOf` (r:1 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn retire() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `687`
+		//  Measured:  `720`
 		//  Estimated: `6676`
-		// Minimum execution time: 41_239_000 picoseconds.
-		Weight::from_parts(42_764_000, 6676)
+		// Minimum execution time: 36_376_000 picoseconds.
+		Weight::from_parts(38_221_000, 6676)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance DepositOf (r:1 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::DepositOf` (r:1 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn kick_member() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `707`
+		//  Measured:  `740`
 		//  Estimated: `18048`
-		// Minimum execution time: 68_071_000 picoseconds.
-		Weight::from_parts(71_808_000, 18048)
+		// Minimum execution time: 56_560_000 picoseconds.
+		Weight::from_parts(58_621_000, 18048)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:1)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousWebsites (r:1 w:1)
-	/// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `l` is `[0, 255]`.
 	fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `246`
+		//  Measured:  `279`
 		//  Estimated: `27187`
-		// Minimum execution time: 7_006_000 picoseconds.
-		Weight::from_parts(7_253_000, 27187)
-			// Standard Error: 3_403
-			.saturating_add(Weight::from_parts(1_680_082, 0).saturating_mul(n.into()))
-			// Standard Error: 1_333
-			.saturating_add(Weight::from_parts(72_943, 0).saturating_mul(l.into()))
+		// Minimum execution time: 5_191_000 picoseconds.
+		Weight::from_parts(5_410_000, 27187)
+			// Standard Error: 3_215
+			.saturating_add(Weight::from_parts(1_018_569, 0).saturating_mul(n.into()))
+			// Standard Error: 1_259
+			.saturating_add(Weight::from_parts(68_712, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:1)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousWebsites (r:1 w:1)
-	/// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `l` is `[0, 255]`.
 	fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + l * (100 ±0) + n * (289 ±0)`
 		//  Estimated: `27187`
-		// Minimum execution time: 7_292_000 picoseconds.
-		Weight::from_parts(7_629_000, 27187)
-			// Standard Error: 176_225
-			.saturating_add(Weight::from_parts(16_646_429, 0).saturating_mul(n.into()))
-			// Standard Error: 69_017
-			.saturating_add(Weight::from_parts(310_978, 0).saturating_mul(l.into()))
+		// Minimum execution time: 5_361_000 picoseconds.
+		Weight::from_parts(5_494_000, 27187)
+			// Standard Error: 181_133
+			.saturating_add(Weight::from_parts(16_322_982, 0).saturating_mul(n.into()))
+			// Standard Error: 70_940
+			.saturating_add(Weight::from_parts(343_581, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:3 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn abdicate_fellow_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `18048`
-		// Minimum execution time: 31_798_000 picoseconds.
-		Weight::from_parts(33_463_000, 18048)
+		// Minimum execution time: 28_856_000 picoseconds.
+		Weight::from_parts(29_875_000, 18048)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion ProposalOf (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalCount (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Voting (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalCount` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Voting` (r:0 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `653 + m * (32 ±0) + p * (35 ±0)`
+		//  Measured:  `654 + m * (32 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (32 ±0) + p * (36 ±0)`
-		// Minimum execution time: 36_908_000 picoseconds.
-		Weight::from_parts(39_040_304, 6676)
-			// Standard Error: 131
-			.saturating_add(Weight::from_parts(781, 0).saturating_mul(b.into()))
-			// Standard Error: 1_375
-			.saturating_add(Weight::from_parts(48_745, 0).saturating_mul(m.into()))
-			// Standard Error: 1_358
-			.saturating_add(Weight::from_parts(148_047, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_801_000 picoseconds.
+		Weight::from_parts(32_942_969, 6676)
+			// Standard Error: 112
+			.saturating_add(Weight::from_parts(614, 0).saturating_mul(b.into()))
+			// Standard Error: 1_177
+			.saturating_add(Weight::from_parts(45_758, 0).saturating_mul(m.into()))
+			// Standard Error: 1_162
+			.saturating_add(Weight::from_parts(136_600, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[5, 100]`.
 	fn vote(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1042 + m * (64 ±0)`
+		//  Measured:  `1113 + m * (64 ±0)`
 		//  Estimated: `6676 + m * (64 ±0)`
-		// Minimum execution time: 30_166_000 picoseconds.
-		Weight::from_parts(32_798_454, 6676)
-			// Standard Error: 1_432
-			.saturating_add(Weight::from_parts(83_001, 0).saturating_mul(m.into()))
+		// Minimum execution time: 29_705_000 picoseconds.
+		Weight::from_parts(30_274_070, 6676)
+			// Standard Error: 884
+			.saturating_add(Weight::from_parts(71_178, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `576 + m * (96 ±0) + p * (36 ±0)`
+		//  Measured:  `640 + m * (96 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 45_173_000 picoseconds.
-		Weight::from_parts(42_192_020, 6676)
-			// Standard Error: 1_456
-			.saturating_add(Weight::from_parts(66_751, 0).saturating_mul(m.into()))
-			// Standard Error: 1_420
-			.saturating_add(Weight::from_parts(158_161, 0).saturating_mul(p.into()))
+		// Minimum execution time: 38_596_000 picoseconds.
+		Weight::from_parts(36_445_536, 6676)
+			// Standard Error: 1_217
+			.saturating_add(Weight::from_parts(69_976, 0).saturating_mul(m.into()))
+			// Standard Error: 1_187
+			.saturating_add(Weight::from_parts(149_706, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:1 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:1 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1087 + m * (96 ±0) + p * (39 ±0)`
+		//  Measured:  `1220 + m * (96 ±0) + p * (39 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (40 ±0)`
-		// Minimum execution time: 58_290_000 picoseconds.
-		Weight::from_parts(54_924_919, 6676)
-			// Standard Error: 157
-			.saturating_add(Weight::from_parts(464, 0).saturating_mul(b.into()))
-			// Standard Error: 1_665
-			.saturating_add(Weight::from_parts(73_183, 0).saturating_mul(m.into()))
-			// Standard Error: 1_623
-			.saturating_add(Weight::from_parts(168_318, 0).saturating_mul(p.into()))
-			.saturating_add(RocksDbWeight::get().reads(5_u64))
+		// Minimum execution time: 57_602_000 picoseconds.
+		Weight::from_parts(55_147_214, 6676)
+			// Standard Error: 127
+			.saturating_add(Weight::from_parts(1_650, 0).saturating_mul(b.into()))
+			// Standard Error: 1_346
+			.saturating_add(Weight::from_parts(56_056, 0).saturating_mul(m.into()))
+			// Standard Error: 1_312
+			.saturating_add(Weight::from_parts(168_247, 0).saturating_mul(p.into()))
+			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:1 w:0)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `577 + m * (96 ±0) + p * (36 ±0)`
+		//  Measured:  `641 + m * (96 ±0) + p * (36 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 46_794_000 picoseconds.
-		Weight::from_parts(43_092_958, 6676)
-			// Standard Error: 1_273
-			.saturating_add(Weight::from_parts(71_054, 0).saturating_mul(m.into()))
-			// Standard Error: 1_257
-			.saturating_add(Weight::from_parts(152_820, 0).saturating_mul(p.into()))
+		// Minimum execution time: 40_755_000 picoseconds.
+		Weight::from_parts(36_953_935, 6676)
+			// Standard Error: 1_177
+			.saturating_add(Weight::from_parts(73_240, 0).saturating_mul(m.into()))
+			// Standard Error: 1_162
+			.saturating_add(Weight::from_parts(149_412, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:1 w:0)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Voting (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Proposals (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion ProposalOf (r:0 w:1)
-	/// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:1 w:0)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Voting` (r:1 w:1)
+	/// Proof: `AllianceMotion::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:0)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:1 w:0)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:1)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::ProposalOf` (r:0 w:1)
+	/// Proof: `AllianceMotion::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[1, 1024]`.
 	/// The range of component `m` is `[5, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `684 + m * (96 ±0) + p * (35 ±0)`
+		//  Measured:  `694 + m * (96 ±0) + p * (35 ±0)`
 		//  Estimated: `6676 + m * (97 ±0) + p * (36 ±0)`
-		// Minimum execution time: 47_338_000 picoseconds.
-		Weight::from_parts(41_257_479, 6676)
-			// Standard Error: 119
-			.saturating_add(Weight::from_parts(1_019, 0).saturating_mul(b.into()))
-			// Standard Error: 1_277
-			.saturating_add(Weight::from_parts(78_453, 0).saturating_mul(m.into()))
-			// Standard Error: 1_231
-			.saturating_add(Weight::from_parts(150_991, 0).saturating_mul(p.into()))
+		// Minimum execution time: 41_113_000 picoseconds.
+		Weight::from_parts(36_610_116, 6676)
+			// Standard Error: 92
+			.saturating_add(Weight::from_parts(1_157, 0).saturating_mul(b.into()))
+			// Standard Error: 984
+			.saturating_add(Weight::from_parts(63_050, 0).saturating_mul(m.into()))
+			// Standard Error: 949
+			.saturating_add(Weight::from_parts(150_420, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 97).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:1 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:1 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	/// The range of component `z` is `[0, 100]`.
 	fn init_members(m: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `217`
+		//  Measured:  `250`
 		//  Estimated: `12362`
-		// Minimum execution time: 35_012_000 picoseconds.
-		Weight::from_parts(24_288_079, 12362)
-			// Standard Error: 878
-			.saturating_add(Weight::from_parts(153_615, 0).saturating_mul(m.into()))
-			// Standard Error: 867
-			.saturating_add(Weight::from_parts(129_307, 0).saturating_mul(z.into()))
+		// Minimum execution time: 30_249_000 picoseconds.
+		Weight::from_parts(21_364_868, 12362)
+			// Standard Error: 887
+			.saturating_add(Weight::from_parts(131_624, 0).saturating_mul(m.into()))
+			// Standard Error: 877
+			.saturating_add(Weight::from_parts(105_379, 0).saturating_mul(z.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance DepositOf (r:200 w:50)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:50 w:50)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::DepositOf` (r:200 w:50)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:50 w:50)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `x` is `[1, 100]`.
 	/// The range of component `y` is `[0, 100]`.
 	/// The range of component `z` is `[0, 50]`.
@@ -696,14 +703,14 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + x * (50 ±0) + y * (51 ±0) + z * (251 ±0)`
 		//  Estimated: `12362 + x * (2539 ±0) + y * (2539 ±0) + z * (2603 ±1)`
-		// Minimum execution time: 309_235_000 picoseconds.
-		Weight::from_parts(311_279_000, 12362)
-			// Standard Error: 26_510
-			.saturating_add(Weight::from_parts(543_475, 0).saturating_mul(x.into()))
-			// Standard Error: 26_382
-			.saturating_add(Weight::from_parts(603_169, 0).saturating_mul(y.into()))
-			// Standard Error: 52_716
-			.saturating_add(Weight::from_parts(16_264_836, 0).saturating_mul(z.into()))
+		// Minimum execution time: 307_414_000 picoseconds.
+		Weight::from_parts(309_960_000, 12362)
+			// Standard Error: 29_278
+			.saturating_add(Weight::from_parts(588_774, 0).saturating_mul(x.into()))
+			// Standard Error: 29_137
+			.saturating_add(Weight::from_parts(563_245, 0).saturating_mul(y.into()))
+			// Standard Error: 58_221
+			.saturating_add(Weight::from_parts(13_947_604, 0).saturating_mul(z.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(x.into())))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(y.into())))
@@ -714,194 +721,194 @@ impl WeightInfo for () {
 			.saturating_add(Weight::from_parts(0, 2539).saturating_mul(y.into()))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(z.into()))
 	}
-	/// Storage: Alliance Rule (r:0 w:1)
-	/// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Rule` (r:0 w:1)
+	/// Proof: `Alliance::Rule` (`max_values`: Some(1), `max_size`: Some(87), added: 582, mode: `MaxEncodedLen`)
 	fn set_rule() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_833_000 picoseconds.
-		Weight::from_parts(9_313_000, 0)
+		// Minimum execution time: 6_156_000 picoseconds.
+		Weight::from_parts(6_560_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Announcements (r:1 w:1)
-	/// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Announcements` (r:1 w:1)
+	/// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`)
 	fn announce() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `246`
+		//  Measured:  `279`
 		//  Estimated: `10187`
-		// Minimum execution time: 12_231_000 picoseconds.
-		Weight::from_parts(12_761_000, 10187)
+		// Minimum execution time: 8_988_000 picoseconds.
+		Weight::from_parts(9_476_000, 10187)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Announcements (r:1 w:1)
-	/// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Announcements` (r:1 w:1)
+	/// Proof: `Alliance::Announcements` (`max_values`: Some(1), `max_size`: Some(8702), added: 9197, mode: `MaxEncodedLen`)
 	fn remove_announcement() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `319`
+		//  Measured:  `352`
 		//  Estimated: `10187`
-		// Minimum execution time: 13_079_000 picoseconds.
-		Weight::from_parts(13_612_000, 10187)
+		// Minimum execution time: 10_126_000 picoseconds.
+		Weight::from_parts(10_755_000, 10187)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:0)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Alliance DepositOf (r:0 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::DepositOf` (r:0 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
 	fn join_alliance() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `468`
+		//  Measured:  `501`
 		//  Estimated: `18048`
-		// Minimum execution time: 44_574_000 picoseconds.
-		Weight::from_parts(46_157_000, 18048)
+		// Minimum execution time: 38_878_000 picoseconds.
+		Weight::from_parts(40_493_000, 18048)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:0)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:0)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
 	fn nominate_ally() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `367`
+		//  Measured:  `400`
 		//  Estimated: `18048`
-		// Minimum execution time: 26_114_000 picoseconds.
-		Weight::from_parts(27_069_000, 18048)
+		// Minimum execution time: 23_265_000 picoseconds.
+		Weight::from_parts(24_703_000, 18048)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Alliance Members (r:2 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:2 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn elevate_ally() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `12362`
-		// Minimum execution time: 25_882_000 picoseconds.
-		Weight::from_parts(26_923_000, 12362)
+		// Minimum execution time: 23_049_000 picoseconds.
+		Weight::from_parts(23_875_000, 12362)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Alliance Members (r:4 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance RetiringMembers (r:0 w:1)
-	/// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Alliance::Members` (r:4 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::RetiringMembers` (r:0 w:1)
+	/// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn give_retirement_notice() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `23734`
-		// Minimum execution time: 34_112_000 picoseconds.
-		Weight::from_parts(35_499_000, 23734)
+		// Minimum execution time: 29_124_000 picoseconds.
+		Weight::from_parts(30_369_000, 23734)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Alliance RetiringMembers (r:1 w:1)
-	/// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
-	/// Storage: Alliance Members (r:1 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: Alliance DepositOf (r:1 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Alliance::RetiringMembers` (r:1 w:1)
+	/// Proof: `Alliance::RetiringMembers` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::Members` (r:1 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::DepositOf` (r:1 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn retire() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `687`
+		//  Measured:  `720`
 		//  Estimated: `6676`
-		// Minimum execution time: 41_239_000 picoseconds.
-		Weight::from_parts(42_764_000, 6676)
+		// Minimum execution time: 36_376_000 picoseconds.
+		Weight::from_parts(38_221_000, 6676)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:1)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Alliance DepositOf (r:1 w:1)
-	/// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:3 w:1)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Alliance::DepositOf` (r:1 w:1)
+	/// Proof: `Alliance::DepositOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn kick_member() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `707`
+		//  Measured:  `740`
 		//  Estimated: `18048`
-		// Minimum execution time: 68_071_000 picoseconds.
-		Weight::from_parts(71_808_000, 18048)
+		// Minimum execution time: 56_560_000 picoseconds.
+		Weight::from_parts(58_621_000, 18048)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:1)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousWebsites (r:1 w:1)
-	/// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `l` is `[0, 255]`.
 	fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `246`
+		//  Measured:  `279`
 		//  Estimated: `27187`
-		// Minimum execution time: 7_006_000 picoseconds.
-		Weight::from_parts(7_253_000, 27187)
-			// Standard Error: 3_403
-			.saturating_add(Weight::from_parts(1_680_082, 0).saturating_mul(n.into()))
-			// Standard Error: 1_333
-			.saturating_add(Weight::from_parts(72_943, 0).saturating_mul(l.into()))
+		// Minimum execution time: 5_191_000 picoseconds.
+		Weight::from_parts(5_410_000, 27187)
+			// Standard Error: 3_215
+			.saturating_add(Weight::from_parts(1_018_569, 0).saturating_mul(n.into()))
+			// Standard Error: 1_259
+			.saturating_add(Weight::from_parts(68_712, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Alliance UnscrupulousAccounts (r:1 w:1)
-	/// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: Alliance UnscrupulousWebsites (r:1 w:1)
-	/// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen)
+	/// Storage: `Alliance::UnscrupulousAccounts` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousAccounts` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `Alliance::UnscrupulousWebsites` (r:1 w:1)
+	/// Proof: `Alliance::UnscrupulousWebsites` (`max_values`: Some(1), `max_size`: Some(25702), added: 26197, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `l` is `[0, 255]`.
 	fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + l * (100 ±0) + n * (289 ±0)`
 		//  Estimated: `27187`
-		// Minimum execution time: 7_292_000 picoseconds.
-		Weight::from_parts(7_629_000, 27187)
-			// Standard Error: 176_225
-			.saturating_add(Weight::from_parts(16_646_429, 0).saturating_mul(n.into()))
-			// Standard Error: 69_017
-			.saturating_add(Weight::from_parts(310_978, 0).saturating_mul(l.into()))
+		// Minimum execution time: 5_361_000 picoseconds.
+		Weight::from_parts(5_494_000, 27187)
+			// Standard Error: 181_133
+			.saturating_add(Weight::from_parts(16_322_982, 0).saturating_mul(n.into()))
+			// Standard Error: 70_940
+			.saturating_add(Weight::from_parts(343_581, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Alliance Members (r:3 w:2)
-	/// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen)
-	/// Storage: AllianceMotion Proposals (r:1 w:0)
-	/// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Members (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AllianceMotion Prime (r:0 w:1)
-	/// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Alliance::Members` (r:3 w:2)
+	/// Proof: `Alliance::Members` (`max_values`: None, `max_size`: Some(3211), added: 5686, mode: `MaxEncodedLen`)
+	/// Storage: `AllianceMotion::Proposals` (r:1 w:0)
+	/// Proof: `AllianceMotion::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Members` (r:0 w:1)
+	/// Proof: `AllianceMotion::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `AllianceMotion::Prime` (r:0 w:1)
+	/// Proof: `AllianceMotion::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn abdicate_fellow_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `443`
+		//  Measured:  `476`
 		//  Estimated: `18048`
-		// Minimum execution time: 31_798_000 picoseconds.
-		Weight::from_parts(33_463_000, 18048)
+		// Minimum execution time: 28_856_000 picoseconds.
+		Weight::from_parts(29_875_000, 18048)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
diff --git a/substrate/frame/asset-conversion/src/weights.rs b/substrate/frame/asset-conversion/src/weights.rs
index a0e687f7a41..4eaa115c694 100644
--- a/substrate/frame/asset-conversion/src/weights.rs
+++ b/substrate/frame/asset-conversion/src/weights.rs
@@ -17,24 +17,28 @@
 
 //! Autogenerated weights for `pallet_asset_conversion`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-10-30, STEPS: `5`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `cob`, CPU: `<UNKNOWN>`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/debug/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
-// --steps=5
-// --repeat=2
-// --pallet=pallet-asset-conversion
+// --steps=50
+// --repeat=20
+// --pallet=pallet_asset_conversion
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
 // --output=./substrate/frame/asset-conversion/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -59,11 +63,9 @@ pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `AssetConversion::Pools` (r:1 w:1)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// Storage: `System::Account` (r:2 w:2)
+	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
-	/// Storage: `Assets::Account` (r:2 w:2)
-	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
-	/// Storage: `Assets::Asset` (r:2 w:2)
+	/// Storage: `Assets::Asset` (r:2 w:0)
 	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1)
 	/// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -73,12 +75,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn create_pool() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1081`
+		//  Measured:  `910`
 		//  Estimated: `6360`
-		// Minimum execution time: 1_576_000_000 picoseconds.
-		Weight::from_parts(1_668_000_000, 6360)
-			.saturating_add(T::DbWeight::get().reads(10_u64))
-			.saturating_add(T::DbWeight::get().writes(10_u64))
+		// Minimum execution time: 82_941_000 picoseconds.
+		Weight::from_parts(85_526_000, 6360)
+			.saturating_add(T::DbWeight::get().reads(7_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
 	/// Storage: `AssetConversion::Pools` (r:1 w:0)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
@@ -86,18 +88,20 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `Assets::Account` (r:4 w:4)
 	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// Storage: `PoolAssets::Asset` (r:1 w:1)
 	/// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `PoolAssets::Account` (r:2 w:2)
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn add_liquidity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1761`
+		//  Measured:  `1507`
 		//  Estimated: `11426`
-		// Minimum execution time: 1_636_000_000 picoseconds.
-		Weight::from_parts(1_894_000_000, 11426)
-			.saturating_add(T::DbWeight::get().reads(10_u64))
-			.saturating_add(T::DbWeight::get().writes(9_u64))
+		// Minimum execution time: 138_424_000 picoseconds.
+		Weight::from_parts(142_083_000, 11426)
+			.saturating_add(T::DbWeight::get().reads(11_u64))
+			.saturating_add(T::DbWeight::get().writes(10_u64))
 	}
 	/// Storage: `AssetConversion::Pools` (r:1 w:0)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
@@ -111,10 +115,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn remove_liquidity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1750`
+		//  Measured:  `1650`
 		//  Estimated: `11426`
-		// Minimum execution time: 1_507_000_000 picoseconds.
-		Weight::from_parts(1_524_000_000, 11426)
+		// Minimum execution time: 122_132_000 picoseconds.
+		Weight::from_parts(125_143_000, 11426)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(8_u64))
 	}
@@ -125,12 +129,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[2, 4]`.
 	fn swap_exact_tokens_for_tokens(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0 + n * (522 ±0)`
+		//  Measured:  `89 + n * (419 ±0)`
 		//  Estimated: `990 + n * (5218 ±0)`
-		// Minimum execution time: 937_000_000 picoseconds.
-		Weight::from_parts(941_000_000, 990)
-			// Standard Error: 40_863_477
-			.saturating_add(Weight::from_parts(205_862_068, 0).saturating_mul(n.into()))
+		// Minimum execution time: 77_183_000 picoseconds.
+		Weight::from_parts(78_581_000, 990)
+			// Standard Error: 306_918
+			.saturating_add(Weight::from_parts(10_581_054, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into()))
@@ -142,12 +146,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[2, 4]`.
 	fn swap_tokens_for_exact_tokens(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0 + n * (522 ±0)`
+		//  Measured:  `89 + n * (419 ±0)`
 		//  Estimated: `990 + n * (5218 ±0)`
-		// Minimum execution time: 935_000_000 picoseconds.
-		Weight::from_parts(947_000_000, 990)
-			// Standard Error: 46_904_620
-			.saturating_add(Weight::from_parts(218_275_862, 0).saturating_mul(n.into()))
+		// Minimum execution time: 76_962_000 picoseconds.
+		Weight::from_parts(78_315_000, 990)
+			// Standard Error: 311_204
+			.saturating_add(Weight::from_parts(10_702_400, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into()))
@@ -158,11 +162,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 impl WeightInfo for () {
 	/// Storage: `AssetConversion::Pools` (r:1 w:1)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
-	/// Storage: `System::Account` (r:2 w:2)
+	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
-	/// Storage: `Assets::Account` (r:2 w:2)
-	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
-	/// Storage: `Assets::Asset` (r:2 w:2)
+	/// Storage: `Assets::Asset` (r:2 w:0)
 	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `AssetConversion::NextPoolAssetId` (r:1 w:1)
 	/// Proof: `AssetConversion::NextPoolAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -172,12 +174,12 @@ impl WeightInfo for () {
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn create_pool() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1081`
+		//  Measured:  `910`
 		//  Estimated: `6360`
-		// Minimum execution time: 1_576_000_000 picoseconds.
-		Weight::from_parts(1_668_000_000, 6360)
-			.saturating_add(RocksDbWeight::get().reads(10_u64))
-			.saturating_add(RocksDbWeight::get().writes(10_u64))
+		// Minimum execution time: 82_941_000 picoseconds.
+		Weight::from_parts(85_526_000, 6360)
+			.saturating_add(RocksDbWeight::get().reads(7_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
 	/// Storage: `AssetConversion::Pools` (r:1 w:0)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
@@ -185,18 +187,20 @@ impl WeightInfo for () {
 	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `Assets::Account` (r:4 w:4)
 	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// Storage: `PoolAssets::Asset` (r:1 w:1)
 	/// Proof: `PoolAssets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	/// Storage: `PoolAssets::Account` (r:2 w:2)
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn add_liquidity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1761`
+		//  Measured:  `1507`
 		//  Estimated: `11426`
-		// Minimum execution time: 1_636_000_000 picoseconds.
-		Weight::from_parts(1_894_000_000, 11426)
-			.saturating_add(RocksDbWeight::get().reads(10_u64))
-			.saturating_add(RocksDbWeight::get().writes(9_u64))
+		// Minimum execution time: 138_424_000 picoseconds.
+		Weight::from_parts(142_083_000, 11426)
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
+			.saturating_add(RocksDbWeight::get().writes(10_u64))
 	}
 	/// Storage: `AssetConversion::Pools` (r:1 w:0)
 	/// Proof: `AssetConversion::Pools` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
@@ -210,10 +214,10 @@ impl WeightInfo for () {
 	/// Proof: `PoolAssets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn remove_liquidity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1750`
+		//  Measured:  `1650`
 		//  Estimated: `11426`
-		// Minimum execution time: 1_507_000_000 picoseconds.
-		Weight::from_parts(1_524_000_000, 11426)
+		// Minimum execution time: 122_132_000 picoseconds.
+		Weight::from_parts(125_143_000, 11426)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(8_u64))
 	}
@@ -224,12 +228,12 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[2, 4]`.
 	fn swap_exact_tokens_for_tokens(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0 + n * (522 ±0)`
+		//  Measured:  `89 + n * (419 ±0)`
 		//  Estimated: `990 + n * (5218 ±0)`
-		// Minimum execution time: 937_000_000 picoseconds.
-		Weight::from_parts(941_000_000, 990)
-			// Standard Error: 40_863_477
-			.saturating_add(Weight::from_parts(205_862_068, 0).saturating_mul(n.into()))
+		// Minimum execution time: 77_183_000 picoseconds.
+		Weight::from_parts(78_581_000, 990)
+			// Standard Error: 306_918
+			.saturating_add(Weight::from_parts(10_581_054, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into()))
@@ -241,12 +245,12 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[2, 4]`.
 	fn swap_tokens_for_exact_tokens(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0 + n * (522 ±0)`
+		//  Measured:  `89 + n * (419 ±0)`
 		//  Estimated: `990 + n * (5218 ±0)`
-		// Minimum execution time: 935_000_000 picoseconds.
-		Weight::from_parts(947_000_000, 990)
-			// Standard Error: 46_904_620
-			.saturating_add(Weight::from_parts(218_275_862, 0).saturating_mul(n.into()))
+		// Minimum execution time: 76_962_000 picoseconds.
+		Weight::from_parts(78_315_000, 990)
+			// Standard Error: 311_204
+			.saturating_add(Weight::from_parts(10_702_400, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 5218).saturating_mul(n.into()))
diff --git a/substrate/frame/asset-rate/src/weights.rs b/substrate/frame/asset-rate/src/weights.rs
index 582e20e56d7..b8723ee3bed 100644
--- a/substrate/frame/asset-rate/src/weights.rs
+++ b/substrate/frame/asset-rate/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_asset_rate
+//! Autogenerated weights for `pallet_asset_rate`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/asset-rate/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/asset-rate/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,83 +49,83 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_asset_rate.
+/// Weight functions needed for `pallet_asset_rate`.
 pub trait WeightInfo {
 	fn create() -> Weight;
 	fn update() -> Weight;
 	fn remove() -> Weight;
 }
 
-/// Weights for pallet_asset_rate using the Substrate node and recommended hardware.
+/// Weights for `pallet_asset_rate` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3501`
-		// Minimum execution time: 11_700_000 picoseconds.
-		Weight::from_parts(12_158_000, 3501)
+		// Minimum execution time: 9_447_000 picoseconds.
+		Weight::from_parts(10_078_000, 3501)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn update() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `137`
 		//  Estimated: `3501`
-		// Minimum execution time: 12_119_000 picoseconds.
-		Weight::from_parts(12_548_000, 3501)
+		// Minimum execution time: 9_844_000 picoseconds.
+		Weight::from_parts(10_240_000, 3501)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn remove() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `137`
 		//  Estimated: `3501`
-		// Minimum execution time: 12_541_000 picoseconds.
-		Weight::from_parts(12_956_000, 3501)
+		// Minimum execution time: 10_411_000 picoseconds.
+		Weight::from_parts(10_686_000, 3501)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3501`
-		// Minimum execution time: 11_700_000 picoseconds.
-		Weight::from_parts(12_158_000, 3501)
+		// Minimum execution time: 9_447_000 picoseconds.
+		Weight::from_parts(10_078_000, 3501)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn update() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `137`
 		//  Estimated: `3501`
-		// Minimum execution time: 12_119_000 picoseconds.
-		Weight::from_parts(12_548_000, 3501)
+		// Minimum execution time: 9_844_000 picoseconds.
+		Weight::from_parts(10_240_000, 3501)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:1)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:1)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn remove() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `137`
 		//  Estimated: `3501`
-		// Minimum execution time: 12_541_000 picoseconds.
-		Weight::from_parts(12_956_000, 3501)
+		// Minimum execution time: 10_411_000 picoseconds.
+		Weight::from_parts(10_686_000, 3501)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/assets/src/weights.rs b/substrate/frame/assets/src/weights.rs
index f20f7e317cf..f5199105fe3 100644
--- a/substrate/frame/assets/src/weights.rs
+++ b/substrate/frame/assets/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_assets
+//! Autogenerated weights for `pallet_assets`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/assets/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/assets/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_assets.
+/// Weight functions needed for `pallet_assets`.
 pub trait WeightInfo {
 	fn create() -> Weight;
 	fn force_create() -> Weight;
@@ -86,882 +85,890 @@ pub trait WeightInfo {
 	fn block() -> Weight;
 }
 
-/// Weights for pallet_assets using the Substrate node and recommended hardware.
+/// Weights for `pallet_assets` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `293`
 		//  Estimated: `3675`
-		// Minimum execution time: 31_340_000 picoseconds.
-		Weight::from_parts(31_977_000, 3675)
+		// Minimum execution time: 24_690_000 picoseconds.
+		Weight::from_parts(25_878_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn force_create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `153`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_342_000 picoseconds.
-		Weight::from_parts(13_782_000, 3675)
+		// Minimum execution time: 10_997_000 picoseconds.
+		Weight::from_parts(11_369_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn start_destroy() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_437_000 picoseconds.
-		Weight::from_parts(14_833_000, 3675)
+		// Minimum execution time: 11_536_000 picoseconds.
+		Weight::from_parts(12_309_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1001 w:1000)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1000 w:1000)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1001 w:1000)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1000 w:1000)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn destroy_accounts(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + c * (208 ±0)`
 		//  Estimated: `3675 + c * (2609 ±0)`
-		// Minimum execution time: 18_728_000 picoseconds.
-		Weight::from_parts(18_982_000, 3675)
-			// Standard Error: 11_708
-			.saturating_add(Weight::from_parts(14_363_570, 0).saturating_mul(c.into()))
+		// Minimum execution time: 15_798_000 picoseconds.
+		Weight::from_parts(16_005_000, 3675)
+			// Standard Error: 7_818
+			.saturating_add(Weight::from_parts(12_826_278, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into()))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1001 w:1000)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1001 w:1000)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 1000]`.
 	fn destroy_approvals(a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `522 + a * (86 ±0)`
 		//  Estimated: `3675 + a * (2623 ±0)`
-		// Minimum execution time: 18_611_000 picoseconds.
-		Weight::from_parts(18_970_000, 3675)
-			// Standard Error: 13_224
-			.saturating_add(Weight::from_parts(16_397_299, 0).saturating_mul(a.into()))
+		// Minimum execution time: 16_334_000 picoseconds.
+		Weight::from_parts(16_616_000, 3675)
+			// Standard Error: 6_402
+			.saturating_add(Weight::from_parts(13_502_238, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into())))
 			.saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into()))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:0)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:0)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn finish_destroy() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_504_000 picoseconds.
-		Weight::from_parts(14_906_000, 3675)
+		// Minimum execution time: 12_278_000 picoseconds.
+		Weight::from_parts(12_834_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 26_653_000 picoseconds.
-		Weight::from_parts(27_260_000, 3675)
+		// Minimum execution time: 21_793_000 picoseconds.
+		Weight::from_parts(22_284_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn burn() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_625_000 picoseconds.
-		Weight::from_parts(34_474_000, 3675)
+		// Minimum execution time: 28_712_000 picoseconds.
+		Weight::from_parts(29_710_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 47_609_000 picoseconds.
-		Weight::from_parts(48_476_000, 6208)
+		// Minimum execution time: 41_331_000 picoseconds.
+		Weight::from_parts(42_362_000, 6208)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer_keep_alive() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 41_625_000 picoseconds.
-		Weight::from_parts(43_030_000, 6208)
+		// Minimum execution time: 37_316_000 picoseconds.
+		Weight::from_parts(38_200_000, 6208)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 47_661_000 picoseconds.
-		Weight::from_parts(48_469_000, 6208)
+		// Minimum execution time: 41_347_000 picoseconds.
+		Weight::from_parts(42_625_000, 6208)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn freeze() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_727_000 picoseconds.
-		Weight::from_parts(18_384_000, 3675)
+		// Minimum execution time: 15_072_000 picoseconds.
+		Weight::from_parts(15_925_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn thaw() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_657_000 picoseconds.
-		Weight::from_parts(18_282_000, 3675)
+		// Minimum execution time: 14_991_000 picoseconds.
+		Weight::from_parts(15_987_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn freeze_asset() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_743_000 picoseconds.
-		Weight::from_parts(14_193_000, 3675)
+		// Minimum execution time: 11_296_000 picoseconds.
+		Weight::from_parts(12_052_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn thaw_asset() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_653_000 picoseconds.
-		Weight::from_parts(14_263_000, 3675)
+		// Minimum execution time: 11_446_000 picoseconds.
+		Weight::from_parts(11_791_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:0)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:0)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 15_328_000 picoseconds.
-		Weight::from_parts(16_042_000, 3675)
+		// Minimum execution time: 13_134_000 picoseconds.
+		Weight::from_parts(13_401_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn set_team() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_097_000 picoseconds.
-		Weight::from_parts(14_641_000, 3675)
+		// Minimum execution time: 11_395_000 picoseconds.
+		Weight::from_parts(11_718_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 50]`.
 	/// The range of component `s` is `[0, 50]`.
-	fn set_metadata(_n: u32, _s: u32, ) -> Weight {
+	fn set_metadata(n: u32, _s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 29_535_000 picoseconds.
-		Weight::from_parts(31_456_892, 3675)
+		// Minimum execution time: 25_147_000 picoseconds.
+		Weight::from_parts(26_614_272, 3675)
+			// Standard Error: 959
+			.saturating_add(Weight::from_parts(2_300, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `515`
 		//  Estimated: `3675`
-		// Minimum execution time: 30_680_000 picoseconds.
-		Weight::from_parts(31_930_000, 3675)
+		// Minimum execution time: 26_094_000 picoseconds.
+		Weight::from_parts(27_199_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 50]`.
 	/// The range of component `s` is `[0, 50]`.
-	fn force_set_metadata(_n: u32, s: u32, ) -> Weight {
+	fn force_set_metadata(n: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `190`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_660_000 picoseconds.
-		Weight::from_parts(15_718_387, 3675)
-			// Standard Error: 622
-			.saturating_add(Weight::from_parts(2_640, 0).saturating_mul(s.into()))
+		// Minimum execution time: 11_977_000 picoseconds.
+		Weight::from_parts(12_719_933, 3675)
+			// Standard Error: 429
+			.saturating_add(Weight::from_parts(3_239, 0).saturating_mul(n.into()))
+			// Standard Error: 429
+			.saturating_add(Weight::from_parts(3_941, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn force_clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `515`
 		//  Estimated: `3675`
-		// Minimum execution time: 30_853_000 picoseconds.
-		Weight::from_parts(31_483_000, 3675)
+		// Minimum execution time: 25_859_000 picoseconds.
+		Weight::from_parts(26_654_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn force_asset_status() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_632_000 picoseconds.
-		Weight::from_parts(14_077_000, 3675)
+		// Minimum execution time: 10_965_000 picoseconds.
+		Weight::from_parts(11_595_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn approve_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_780_000 picoseconds.
-		Weight::from_parts(34_533_000, 3675)
+		// Minimum execution time: 28_427_000 picoseconds.
+		Weight::from_parts(29_150_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer_approved() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `668`
 		//  Estimated: `6208`
-		// Minimum execution time: 67_712_000 picoseconds.
-		Weight::from_parts(69_946_000, 6208)
+		// Minimum execution time: 60_227_000 picoseconds.
+		Weight::from_parts(61_839_000, 6208)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `555`
 		//  Estimated: `3675`
-		// Minimum execution time: 36_668_000 picoseconds.
-		Weight::from_parts(37_637_000, 3675)
+		// Minimum execution time: 30_738_000 picoseconds.
+		Weight::from_parts(31_988_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn force_cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `555`
 		//  Estimated: `3675`
-		// Minimum execution time: 36_685_000 picoseconds.
-		Weight::from_parts(37_950_000, 3675)
+		// Minimum execution time: 31_444_000 picoseconds.
+		Weight::from_parts(32_126_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn set_min_balance() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_466_000 picoseconds.
-		Weight::from_parts(14_924_000, 3675)
+		// Minimum execution time: 11_890_000 picoseconds.
+		Weight::from_parts(12_462_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn touch() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `453`
 		//  Estimated: `3675`
-		// Minimum execution time: 34_874_000 picoseconds.
-		Weight::from_parts(36_330_000, 3675)
+		// Minimum execution time: 30_675_000 picoseconds.
+		Weight::from_parts(31_749_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn touch_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_278_000 picoseconds.
-		Weight::from_parts(34_104_000, 3675)
+		// Minimum execution time: 28_290_000 picoseconds.
+		Weight::from_parts(29_405_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn refund() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `579`
 		//  Estimated: `3675`
-		// Minimum execution time: 32_898_000 picoseconds.
-		Weight::from_parts(33_489_000, 3675)
+		// Minimum execution time: 30_195_000 picoseconds.
+		Weight::from_parts(31_105_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn refund_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `510`
 		//  Estimated: `3675`
-		// Minimum execution time: 31_243_000 picoseconds.
-		Weight::from_parts(31_909_000, 3675)
+		// Minimum execution time: 27_785_000 picoseconds.
+		Weight::from_parts(28_783_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn block() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_692_000 picoseconds.
-		Weight::from_parts(18_253_000, 3675)
+		// Minimum execution time: 15_318_000 picoseconds.
+		Weight::from_parts(16_113_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `293`
 		//  Estimated: `3675`
-		// Minimum execution time: 31_340_000 picoseconds.
-		Weight::from_parts(31_977_000, 3675)
+		// Minimum execution time: 24_690_000 picoseconds.
+		Weight::from_parts(25_878_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn force_create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `153`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_342_000 picoseconds.
-		Weight::from_parts(13_782_000, 3675)
+		// Minimum execution time: 10_997_000 picoseconds.
+		Weight::from_parts(11_369_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn start_destroy() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_437_000 picoseconds.
-		Weight::from_parts(14_833_000, 3675)
+		// Minimum execution time: 11_536_000 picoseconds.
+		Weight::from_parts(12_309_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1001 w:1000)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1000 w:1000)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1001 w:1000)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1000 w:1000)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn destroy_accounts(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + c * (208 ±0)`
 		//  Estimated: `3675 + c * (2609 ±0)`
-		// Minimum execution time: 18_728_000 picoseconds.
-		Weight::from_parts(18_982_000, 3675)
-			// Standard Error: 11_708
-			.saturating_add(Weight::from_parts(14_363_570, 0).saturating_mul(c.into()))
+		// Minimum execution time: 15_798_000 picoseconds.
+		Weight::from_parts(16_005_000, 3675)
+			// Standard Error: 7_818
+			.saturating_add(Weight::from_parts(12_826_278, 0).saturating_mul(c.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(c.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(c.into())))
 			.saturating_add(Weight::from_parts(0, 2609).saturating_mul(c.into()))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1001 w:1000)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1001 w:1000)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 1000]`.
 	fn destroy_approvals(a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `522 + a * (86 ±0)`
 		//  Estimated: `3675 + a * (2623 ±0)`
-		// Minimum execution time: 18_611_000 picoseconds.
-		Weight::from_parts(18_970_000, 3675)
-			// Standard Error: 13_224
-			.saturating_add(Weight::from_parts(16_397_299, 0).saturating_mul(a.into()))
+		// Minimum execution time: 16_334_000 picoseconds.
+		Weight::from_parts(16_616_000, 3675)
+			// Standard Error: 6_402
+			.saturating_add(Weight::from_parts(13_502_238, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(a.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into())))
 			.saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into()))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:0)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:0)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn finish_destroy() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_504_000 picoseconds.
-		Weight::from_parts(14_906_000, 3675)
+		// Minimum execution time: 12_278_000 picoseconds.
+		Weight::from_parts(12_834_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 26_653_000 picoseconds.
-		Weight::from_parts(27_260_000, 3675)
+		// Minimum execution time: 21_793_000 picoseconds.
+		Weight::from_parts(22_284_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn burn() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_625_000 picoseconds.
-		Weight::from_parts(34_474_000, 3675)
+		// Minimum execution time: 28_712_000 picoseconds.
+		Weight::from_parts(29_710_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 47_609_000 picoseconds.
-		Weight::from_parts(48_476_000, 6208)
+		// Minimum execution time: 41_331_000 picoseconds.
+		Weight::from_parts(42_362_000, 6208)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer_keep_alive() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 41_625_000 picoseconds.
-		Weight::from_parts(43_030_000, 6208)
+		// Minimum execution time: 37_316_000 picoseconds.
+		Weight::from_parts(38_200_000, 6208)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `498`
 		//  Estimated: `6208`
-		// Minimum execution time: 47_661_000 picoseconds.
-		Weight::from_parts(48_469_000, 6208)
+		// Minimum execution time: 41_347_000 picoseconds.
+		Weight::from_parts(42_625_000, 6208)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn freeze() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_727_000 picoseconds.
-		Weight::from_parts(18_384_000, 3675)
+		// Minimum execution time: 15_072_000 picoseconds.
+		Weight::from_parts(15_925_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn thaw() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_657_000 picoseconds.
-		Weight::from_parts(18_282_000, 3675)
+		// Minimum execution time: 14_991_000 picoseconds.
+		Weight::from_parts(15_987_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn freeze_asset() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_743_000 picoseconds.
-		Weight::from_parts(14_193_000, 3675)
+		// Minimum execution time: 11_296_000 picoseconds.
+		Weight::from_parts(12_052_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn thaw_asset() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_653_000 picoseconds.
-		Weight::from_parts(14_263_000, 3675)
+		// Minimum execution time: 11_446_000 picoseconds.
+		Weight::from_parts(11_791_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:0)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:0)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 15_328_000 picoseconds.
-		Weight::from_parts(16_042_000, 3675)
+		// Minimum execution time: 13_134_000 picoseconds.
+		Weight::from_parts(13_401_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn set_team() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_097_000 picoseconds.
-		Weight::from_parts(14_641_000, 3675)
+		// Minimum execution time: 11_395_000 picoseconds.
+		Weight::from_parts(11_718_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 50]`.
 	/// The range of component `s` is `[0, 50]`.
-	fn set_metadata(_n: u32, _s: u32, ) -> Weight {
+	fn set_metadata(n: u32, _s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 29_535_000 picoseconds.
-		Weight::from_parts(31_456_892, 3675)
+		// Minimum execution time: 25_147_000 picoseconds.
+		Weight::from_parts(26_614_272, 3675)
+			// Standard Error: 959
+			.saturating_add(Weight::from_parts(2_300, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `515`
 		//  Estimated: `3675`
-		// Minimum execution time: 30_680_000 picoseconds.
-		Weight::from_parts(31_930_000, 3675)
+		// Minimum execution time: 26_094_000 picoseconds.
+		Weight::from_parts(27_199_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 50]`.
 	/// The range of component `s` is `[0, 50]`.
-	fn force_set_metadata(_n: u32, s: u32, ) -> Weight {
+	fn force_set_metadata(n: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `190`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_660_000 picoseconds.
-		Weight::from_parts(15_718_387, 3675)
-			// Standard Error: 622
-			.saturating_add(Weight::from_parts(2_640, 0).saturating_mul(s.into()))
+		// Minimum execution time: 11_977_000 picoseconds.
+		Weight::from_parts(12_719_933, 3675)
+			// Standard Error: 429
+			.saturating_add(Weight::from_parts(3_239, 0).saturating_mul(n.into()))
+			// Standard Error: 429
+			.saturating_add(Weight::from_parts(3_941, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
 	fn force_clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `515`
 		//  Estimated: `3675`
-		// Minimum execution time: 30_853_000 picoseconds.
-		Weight::from_parts(31_483_000, 3675)
+		// Minimum execution time: 25_859_000 picoseconds.
+		Weight::from_parts(26_654_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn force_asset_status() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 13_632_000 picoseconds.
-		Weight::from_parts(14_077_000, 3675)
+		// Minimum execution time: 10_965_000 picoseconds.
+		Weight::from_parts(11_595_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn approve_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `385`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_780_000 picoseconds.
-		Weight::from_parts(34_533_000, 3675)
+		// Minimum execution time: 28_427_000 picoseconds.
+		Weight::from_parts(29_150_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer_approved() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `668`
 		//  Estimated: `6208`
-		// Minimum execution time: 67_712_000 picoseconds.
-		Weight::from_parts(69_946_000, 6208)
+		// Minimum execution time: 60_227_000 picoseconds.
+		Weight::from_parts(61_839_000, 6208)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `555`
 		//  Estimated: `3675`
-		// Minimum execution time: 36_668_000 picoseconds.
-		Weight::from_parts(37_637_000, 3675)
+		// Minimum execution time: 30_738_000 picoseconds.
+		Weight::from_parts(31_988_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Approvals (r:1 w:1)
-	/// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Approvals` (r:1 w:1)
+	/// Proof: `Assets::Approvals` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`)
 	fn force_cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `555`
 		//  Estimated: `3675`
-		// Minimum execution time: 36_685_000 picoseconds.
-		Weight::from_parts(37_950_000, 3675)
+		// Minimum execution time: 31_444_000 picoseconds.
+		Weight::from_parts(32_126_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn set_min_balance() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 14_466_000 picoseconds.
-		Weight::from_parts(14_924_000, 3675)
+		// Minimum execution time: 11_890_000 picoseconds.
+		Weight::from_parts(12_462_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn touch() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `453`
 		//  Estimated: `3675`
-		// Minimum execution time: 34_874_000 picoseconds.
-		Weight::from_parts(36_330_000, 3675)
+		// Minimum execution time: 30_675_000 picoseconds.
+		Weight::from_parts(31_749_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn touch_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `351`
 		//  Estimated: `3675`
-		// Minimum execution time: 33_278_000 picoseconds.
-		Weight::from_parts(34_104_000, 3675)
+		// Minimum execution time: 28_290_000 picoseconds.
+		Weight::from_parts(29_405_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn refund() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `579`
 		//  Estimated: `3675`
-		// Minimum execution time: 32_898_000 picoseconds.
-		Weight::from_parts(33_489_000, 3675)
+		// Minimum execution time: 30_195_000 picoseconds.
+		Weight::from_parts(31_105_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
 	fn refund_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `510`
 		//  Estimated: `3675`
-		// Minimum execution time: 31_243_000 picoseconds.
-		Weight::from_parts(31_909_000, 3675)
+		// Minimum execution time: 27_785_000 picoseconds.
+		Weight::from_parts(28_783_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Assets Asset (r:1 w:0)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Assets::Asset` (r:1 w:0)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn block() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `459`
 		//  Estimated: `3675`
-		// Minimum execution time: 17_692_000 picoseconds.
-		Weight::from_parts(18_253_000, 3675)
+		// Minimum execution time: 15_318_000 picoseconds.
+		Weight::from_parts(16_113_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/babe/src/mock.rs b/substrate/frame/babe/src/mock.rs
index b693f4fce9b..1ba0cdd0cc1 100644
--- a/substrate/frame/babe/src/mock.rs
+++ b/substrate/frame/babe/src/mock.rs
@@ -37,8 +37,9 @@ use sp_core::{
 use sp_io;
 use sp_runtime::{
 	curve::PiecewiseLinear,
+	generic::UncheckedExtrinsic,
 	impl_opaque_keys,
-	testing::{Digest, DigestItem, Header, TestXt},
+	testing::{Digest, DigestItem, Header},
 	traits::{Header as _, OpaqueKeys},
 	BuildStorage, Perbill,
 };
@@ -74,7 +75,7 @@ where
 	RuntimeCall: From<C>,
 {
 	type OverarchingCall = RuntimeCall;
-	type Extrinsic = TestXt<RuntimeCall, ()>;
+	type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 }
 
 impl_opaque_keys! {
diff --git a/substrate/frame/bags-list/src/weights.rs b/substrate/frame/bags-list/src/weights.rs
index d929c6bb959..804b702cc9a 100644
--- a/substrate/frame/bags-list/src/weights.rs
+++ b/substrate/frame/bags-list/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_bags_list
+//! Autogenerated weights for `pallet_bags_list`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/bags-list/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/bags-list/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,123 +49,123 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_bags_list.
+/// Weight functions needed for `pallet_bags_list`.
 pub trait WeightInfo {
 	fn rebag_non_terminal() -> Weight;
 	fn rebag_terminal() -> Weight;
 	fn put_in_front_of() -> Weight;
 }
 
-/// Weights for pallet_bags_list using the Substrate node and recommended hardware.
+/// Weights for `pallet_bags_list` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:4 w:4)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:4 w:4)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn rebag_non_terminal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1724`
+		//  Measured:  `1719`
 		//  Estimated: `11506`
-		// Minimum execution time: 62_137_000 picoseconds.
-		Weight::from_parts(64_050_000, 11506)
+		// Minimum execution time: 55_856_000 picoseconds.
+		Weight::from_parts(59_022_000, 11506)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:3 w:3)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:2 w:2)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:3 w:3)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:2 w:2)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn rebag_terminal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1618`
+		//  Measured:  `1613`
 		//  Estimated: `8877`
-		// Minimum execution time: 60_880_000 picoseconds.
-		Weight::from_parts(62_078_000, 8877)
+		// Minimum execution time: 55_418_000 picoseconds.
+		Weight::from_parts(57_352_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: VoterList ListNodes (r:4 w:4)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: Staking Bonded (r:2 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:2 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList CounterForListNodes (r:1 w:1)
-	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `VoterList::ListNodes` (r:4 w:4)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Bonded` (r:2 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:2 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::CounterForListNodes` (r:1 w:1)
+	/// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn put_in_front_of() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1930`
+		//  Measured:  `1925`
 		//  Estimated: `11506`
-		// Minimum execution time: 68_911_000 picoseconds.
-		Weight::from_parts(70_592_000, 11506)
+		// Minimum execution time: 63_820_000 picoseconds.
+		Weight::from_parts(65_530_000, 11506)
 			.saturating_add(T::DbWeight::get().reads(10_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:4 w:4)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:4 w:4)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn rebag_non_terminal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1724`
+		//  Measured:  `1719`
 		//  Estimated: `11506`
-		// Minimum execution time: 62_137_000 picoseconds.
-		Weight::from_parts(64_050_000, 11506)
+		// Minimum execution time: 55_856_000 picoseconds.
+		Weight::from_parts(59_022_000, 11506)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:3 w:3)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:2 w:2)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:3 w:3)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:2 w:2)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn rebag_terminal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1618`
+		//  Measured:  `1613`
 		//  Estimated: `8877`
-		// Minimum execution time: 60_880_000 picoseconds.
-		Weight::from_parts(62_078_000, 8877)
+		// Minimum execution time: 55_418_000 picoseconds.
+		Weight::from_parts(57_352_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: VoterList ListNodes (r:4 w:4)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: Staking Bonded (r:2 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:2 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: VoterList CounterForListNodes (r:1 w:1)
-	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
+	/// Storage: `VoterList::ListNodes` (r:4 w:4)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Bonded` (r:2 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:2 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::CounterForListNodes` (r:1 w:1)
+	/// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
 	fn put_in_front_of() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1930`
+		//  Measured:  `1925`
 		//  Estimated: `11506`
-		// Minimum execution time: 68_911_000 picoseconds.
-		Weight::from_parts(70_592_000, 11506)
+		// Minimum execution time: 63_820_000 picoseconds.
+		Weight::from_parts(65_530_000, 11506)
 			.saturating_add(RocksDbWeight::get().reads(10_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
diff --git a/substrate/frame/balances/Cargo.toml b/substrate/frame/balances/Cargo.toml
index 64ae90c6757..db114290ed8 100644
--- a/substrate/frame/balances/Cargo.toml
+++ b/substrate/frame/balances/Cargo.toml
@@ -53,6 +53,7 @@ runtime-benchmarks = [
 	"frame-benchmarking/runtime-benchmarks",
 	"frame-support/runtime-benchmarks",
 	"frame-system/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"sp-runtime/runtime-benchmarks",
 ]
 try-runtime = [
diff --git a/substrate/frame/balances/src/tests/currency_tests.rs b/substrate/frame/balances/src/tests/currency_tests.rs
index 46a4c4caefc..10bb79901f8 100644
--- a/substrate/frame/balances/src/tests/currency_tests.rs
+++ b/substrate/frame/balances/src/tests/currency_tests.rs
@@ -30,6 +30,7 @@ use frame_support::{
 	StorageNoopGuard,
 };
 use frame_system::Event as SysEvent;
+use sp_runtime::traits::DispatchTransaction;
 
 const ID_1: LockIdentifier = *b"1       ";
 const ID_2: LockIdentifier = *b"2       ";
@@ -240,17 +241,17 @@ fn lock_should_work_reserve() {
 				TokenError::Frozen
 			);
 			assert_noop!(Balances::reserve(&1, 1), Error::<Test>::LiquidityRestrictions,);
-			assert!(<ChargeTransactionPayment<Test> as SignedExtension>::pre_dispatch(
+			assert!(ChargeTransactionPayment::<Test>::validate_and_prepare(
 				ChargeTransactionPayment::from(1),
-				&1,
+				Some(1).into(),
 				CALL,
 				&info_from_weight(Weight::from_parts(1, 0)),
 				1,
 			)
 			.is_err());
-			assert!(<ChargeTransactionPayment<Test> as SignedExtension>::pre_dispatch(
+			assert!(ChargeTransactionPayment::<Test>::validate_and_prepare(
 				ChargeTransactionPayment::from(0),
-				&1,
+				Some(1).into(),
 				CALL,
 				&info_from_weight(Weight::from_parts(1, 0)),
 				1,
@@ -271,17 +272,17 @@ fn lock_should_work_tx_fee() {
 				TokenError::Frozen
 			);
 			assert_noop!(Balances::reserve(&1, 1), Error::<Test>::LiquidityRestrictions,);
-			assert!(<ChargeTransactionPayment<Test> as SignedExtension>::pre_dispatch(
+			assert!(ChargeTransactionPayment::<Test>::validate_and_prepare(
 				ChargeTransactionPayment::from(1),
-				&1,
+				Some(1).into(),
 				CALL,
 				&info_from_weight(Weight::from_parts(1, 0)),
 				1,
 			)
 			.is_err());
-			assert!(<ChargeTransactionPayment<Test> as SignedExtension>::pre_dispatch(
+			assert!(ChargeTransactionPayment::<Test>::validate_and_prepare(
 				ChargeTransactionPayment::from(0),
-				&1,
+				Some(1).into(),
 				CALL,
 				&info_from_weight(Weight::from_parts(1, 0)),
 				1,
diff --git a/substrate/frame/balances/src/tests/mod.rs b/substrate/frame/balances/src/tests/mod.rs
index 599909fa943..ee076a10fd1 100644
--- a/substrate/frame/balances/src/tests/mod.rs
+++ b/substrate/frame/balances/src/tests/mod.rs
@@ -37,7 +37,7 @@ use scale_info::TypeInfo;
 use sp_core::hexdisplay::HexDisplay;
 use sp_io;
 use sp_runtime::{
-	traits::{BadOrigin, SignedExtension, Zero},
+	traits::{BadOrigin, Zero},
 	ArithmeticError, BuildStorage, DispatchError, DispatchResult, FixedPointNumber, RuntimeDebug,
 	TokenError,
 };
@@ -96,13 +96,13 @@ impl frame_system::Config for Test {
 	type AccountData = super::AccountData<u64>;
 }
 
+#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig as pallet_transaction_payment::DefaultConfig)]
 impl pallet_transaction_payment::Config for Test {
 	type RuntimeEvent = RuntimeEvent;
 	type OnChargeTransaction = CurrencyAdapter<Pallet<Test>, ()>;
 	type OperationalFeeMultiplier = ConstU8<5>;
 	type WeightToFee = IdentityFee<u64>;
 	type LengthToFee = IdentityFee<u64>;
-	type FeeMultiplierUpdate = ();
 }
 
 pub(crate) type Balance = u64;
diff --git a/substrate/frame/balances/src/weights.rs b/substrate/frame/balances/src/weights.rs
index f875ea189ba..6bcfe050af7 100644
--- a/substrate/frame/balances/src/weights.rs
+++ b/substrate/frame/balances/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_balances`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_balances
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_balances
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/balances/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -69,8 +71,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 46_329_000 picoseconds.
-		Weight::from_parts(47_297_000, 3593)
+		// Minimum execution time: 46_407_000 picoseconds.
+		Weight::from_parts(47_561_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -80,8 +82,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 36_187_000 picoseconds.
-		Weight::from_parts(36_900_000, 3593)
+		// Minimum execution time: 36_574_000 picoseconds.
+		Weight::from_parts(37_682_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -91,8 +93,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 13_498_000 picoseconds.
-		Weight::from_parts(14_143_000, 3593)
+		// Minimum execution time: 13_990_000 picoseconds.
+		Weight::from_parts(14_568_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -102,8 +104,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 18_756_000 picoseconds.
-		Weight::from_parts(19_553_000, 3593)
+		// Minimum execution time: 19_594_000 picoseconds.
+		Weight::from_parts(20_148_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -113,8 +115,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6196`
-		// Minimum execution time: 47_826_000 picoseconds.
-		Weight::from_parts(48_834_000, 6196)
+		// Minimum execution time: 47_945_000 picoseconds.
+		Weight::from_parts(49_363_000, 6196)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -124,8 +126,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 44_621_000 picoseconds.
-		Weight::from_parts(45_151_000, 3593)
+		// Minimum execution time: 45_205_000 picoseconds.
+		Weight::from_parts(45_952_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -135,8 +137,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 16_194_000 picoseconds.
-		Weight::from_parts(16_945_000, 3593)
+		// Minimum execution time: 16_593_000 picoseconds.
+		Weight::from_parts(17_123_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -147,10 +149,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + u * (135 ±0)`
 		//  Estimated: `990 + u * (2603 ±0)`
-		// Minimum execution time: 15_782_000 picoseconds.
-		Weight::from_parts(16_118_000, 990)
-			// Standard Error: 10_499
-			.saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into()))
+		// Minimum execution time: 16_182_000 picoseconds.
+		Weight::from_parts(16_412_000, 990)
+			// Standard Error: 10_148
+			.saturating_add(Weight::from_parts(13_382_459, 0).saturating_mul(u.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into())))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
@@ -159,8 +161,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_157_000 picoseconds.
-		Weight::from_parts(6_507_000, 0)
+		// Minimum execution time: 6_478_000 picoseconds.
+		Weight::from_parts(6_830_000, 0)
 	}
 }
 
@@ -172,8 +174,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 46_329_000 picoseconds.
-		Weight::from_parts(47_297_000, 3593)
+		// Minimum execution time: 46_407_000 picoseconds.
+		Weight::from_parts(47_561_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -183,8 +185,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 36_187_000 picoseconds.
-		Weight::from_parts(36_900_000, 3593)
+		// Minimum execution time: 36_574_000 picoseconds.
+		Weight::from_parts(37_682_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -194,8 +196,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 13_498_000 picoseconds.
-		Weight::from_parts(14_143_000, 3593)
+		// Minimum execution time: 13_990_000 picoseconds.
+		Weight::from_parts(14_568_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -205,8 +207,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 18_756_000 picoseconds.
-		Weight::from_parts(19_553_000, 3593)
+		// Minimum execution time: 19_594_000 picoseconds.
+		Weight::from_parts(20_148_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -216,8 +218,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `6196`
-		// Minimum execution time: 47_826_000 picoseconds.
-		Weight::from_parts(48_834_000, 6196)
+		// Minimum execution time: 47_945_000 picoseconds.
+		Weight::from_parts(49_363_000, 6196)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -227,8 +229,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3593`
-		// Minimum execution time: 44_621_000 picoseconds.
-		Weight::from_parts(45_151_000, 3593)
+		// Minimum execution time: 45_205_000 picoseconds.
+		Weight::from_parts(45_952_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -238,8 +240,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 16_194_000 picoseconds.
-		Weight::from_parts(16_945_000, 3593)
+		// Minimum execution time: 16_593_000 picoseconds.
+		Weight::from_parts(17_123_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -250,10 +252,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + u * (135 ±0)`
 		//  Estimated: `990 + u * (2603 ±0)`
-		// Minimum execution time: 15_782_000 picoseconds.
-		Weight::from_parts(16_118_000, 990)
-			// Standard Error: 10_499
-			.saturating_add(Weight::from_parts(13_327_660, 0).saturating_mul(u.into()))
+		// Minimum execution time: 16_182_000 picoseconds.
+		Weight::from_parts(16_412_000, 990)
+			// Standard Error: 10_148
+			.saturating_add(Weight::from_parts(13_382_459, 0).saturating_mul(u.into()))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(u.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(u.into())))
 			.saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into()))
@@ -262,7 +264,7 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_157_000 picoseconds.
-		Weight::from_parts(6_507_000, 0)
+		// Minimum execution time: 6_478_000 picoseconds.
+		Weight::from_parts(6_830_000, 0)
 	}
 }
diff --git a/substrate/frame/beefy/src/mock.rs b/substrate/frame/beefy/src/mock.rs
index 9cce479890a..5d963d309a4 100644
--- a/substrate/frame/beefy/src/mock.rs
+++ b/substrate/frame/beefy/src/mock.rs
@@ -29,8 +29,8 @@ use pallet_session::historical as pallet_session_historical;
 use sp_core::{crypto::KeyTypeId, ConstU128};
 use sp_io::TestExternalities;
 use sp_runtime::{
-	app_crypto::ecdsa::Public, curve::PiecewiseLinear, impl_opaque_keys, testing::TestXt,
-	traits::OpaqueKeys, BuildStorage, Perbill,
+	app_crypto::ecdsa::Public, curve::PiecewiseLinear, generic::UncheckedExtrinsic,
+	impl_opaque_keys, traits::OpaqueKeys, BuildStorage, Perbill,
 };
 use sp_staking::{EraIndex, SessionIndex};
 use sp_state_machine::BasicExternalities;
@@ -73,7 +73,7 @@ where
 	RuntimeCall: From<C>,
 {
 	type OverarchingCall = RuntimeCall;
-	type Extrinsic = TestXt<RuntimeCall, ()>;
+	type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 }
 
 parameter_types! {
diff --git a/substrate/frame/benchmarking/src/weights.rs b/substrate/frame/benchmarking/src/weights.rs
index 13d73e420cc..76f9a3fe52b 100644
--- a/substrate/frame/benchmarking/src/weights.rs
+++ b/substrate/frame/benchmarking/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for frame_benchmarking
+//! Autogenerated weights for `frame_benchmarking`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/benchmarking/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/benchmarking/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for frame_benchmarking.
+/// Weight functions needed for `frame_benchmarking`.
 pub trait WeightInfo {
 	fn addition(i: u32, ) -> Weight;
 	fn subtraction(i: u32, ) -> Weight;
@@ -60,7 +59,7 @@ pub trait WeightInfo {
 	fn sr25519_verification(i: u32, ) -> Weight;
 }
 
-/// Weights for frame_benchmarking using the Substrate node and recommended hardware.
+/// Weights for `frame_benchmarking` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `i` is `[0, 1000000]`.
@@ -68,101 +67,101 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 147_000 picoseconds.
-		Weight::from_parts(185_656, 0)
+		// Minimum execution time: 150_000 picoseconds.
+		Weight::from_parts(190_440, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn subtraction(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 146_000 picoseconds.
-		Weight::from_parts(189_816, 0)
+		// Minimum execution time: 151_000 picoseconds.
+		Weight::from_parts(201_397, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn multiplication(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 148_000 picoseconds.
-		Weight::from_parts(202_367, 0)
+		// Minimum execution time: 152_000 picoseconds.
+		Weight::from_parts(187_862, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn division(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 143_000 picoseconds.
-		Weight::from_parts(189_693, 0)
+		// Minimum execution time: 146_000 picoseconds.
+		Weight::from_parts(215_191, 0)
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 24_167_071_000 picoseconds.
-		Weight::from_parts(24_391_749_000, 0)
+		// Minimum execution time: 25_432_823_000 picoseconds.
+		Weight::from_parts(25_568_846_000, 0)
 	}
 	/// The range of component `i` is `[0, 100]`.
 	fn sr25519_verification(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 231_000 picoseconds.
-		Weight::from_parts(2_998_013, 0)
-			// Standard Error: 6_256
-			.saturating_add(Weight::from_parts(55_456_705, 0).saturating_mul(i.into()))
+		// Minimum execution time: 193_000 picoseconds.
+		Weight::from_parts(3_846_690, 0)
+			// Standard Error: 6_694
+			.saturating_add(Weight::from_parts(40_647_582, 0).saturating_mul(i.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
 	/// The range of component `i` is `[0, 1000000]`.
 	fn addition(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 147_000 picoseconds.
-		Weight::from_parts(185_656, 0)
+		// Minimum execution time: 150_000 picoseconds.
+		Weight::from_parts(190_440, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn subtraction(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 146_000 picoseconds.
-		Weight::from_parts(189_816, 0)
+		// Minimum execution time: 151_000 picoseconds.
+		Weight::from_parts(201_397, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn multiplication(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 148_000 picoseconds.
-		Weight::from_parts(202_367, 0)
+		// Minimum execution time: 152_000 picoseconds.
+		Weight::from_parts(187_862, 0)
 	}
 	/// The range of component `i` is `[0, 1000000]`.
 	fn division(_i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 143_000 picoseconds.
-		Weight::from_parts(189_693, 0)
+		// Minimum execution time: 146_000 picoseconds.
+		Weight::from_parts(215_191, 0)
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 24_167_071_000 picoseconds.
-		Weight::from_parts(24_391_749_000, 0)
+		// Minimum execution time: 25_432_823_000 picoseconds.
+		Weight::from_parts(25_568_846_000, 0)
 	}
 	/// The range of component `i` is `[0, 100]`.
 	fn sr25519_verification(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 231_000 picoseconds.
-		Weight::from_parts(2_998_013, 0)
-			// Standard Error: 6_256
-			.saturating_add(Weight::from_parts(55_456_705, 0).saturating_mul(i.into()))
+		// Minimum execution time: 193_000 picoseconds.
+		Weight::from_parts(3_846_690, 0)
+			// Standard Error: 6_694
+			.saturating_add(Weight::from_parts(40_647_582, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/substrate/frame/bounties/src/weights.rs b/substrate/frame/bounties/src/weights.rs
index a172d15b56c..1f0e38b6702 100644
--- a/substrate/frame/bounties/src/weights.rs
+++ b/substrate/frame/bounties/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_bounties
+//! Autogenerated weights for `pallet_bounties`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/bounties/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/bounties/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_bounties.
+/// Weight functions needed for `pallet_bounties`.
 pub trait WeightInfo {
 	fn propose_bounty(d: u32, ) -> Weight;
 	fn approve_bounty() -> Weight;
@@ -65,169 +64,169 @@ pub trait WeightInfo {
 	fn spend_funds(b: u32, ) -> Weight;
 }
 
-/// Weights for pallet_bounties using the Substrate node and recommended hardware.
+/// Weights for `pallet_bounties` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Bounties BountyCount (r:1 w:1)
-	/// Proof: Bounties BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:0 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyCount` (r:1 w:1)
+	/// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:0 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 300]`.
 	fn propose_bounty(d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `276`
+		//  Measured:  `309`
 		//  Estimated: `3593`
-		// Minimum execution time: 29_384_000 picoseconds.
-		Weight::from_parts(30_820_018, 3593)
-			// Standard Error: 298
-			.saturating_add(Weight::from_parts(2_920, 0).saturating_mul(d.into()))
+		// Minimum execution time: 24_286_000 picoseconds.
+		Weight::from_parts(25_657_314, 3593)
+			// Standard Error: 215
+			.saturating_add(Weight::from_parts(1_116, 0).saturating_mul(d.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn approve_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `368`
+		//  Measured:  `401`
 		//  Estimated: `3642`
-		// Minimum execution time: 10_873_000 picoseconds.
-		Weight::from_parts(11_421_000, 3642)
+		// Minimum execution time: 12_526_000 picoseconds.
+		Weight::from_parts(13_373_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `388`
+		//  Measured:  `421`
 		//  Estimated: `3642`
-		// Minimum execution time: 9_181_000 picoseconds.
-		Weight::from_parts(9_726_000, 3642)
+		// Minimum execution time: 11_807_000 picoseconds.
+		Weight::from_parts(12_340_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `564`
+		//  Measured:  `597`
 		//  Estimated: `3642`
-		// Minimum execution time: 30_257_000 picoseconds.
-		Weight::from_parts(30_751_000, 3642)
+		// Minimum execution time: 27_183_000 picoseconds.
+		Weight::from_parts(28_250_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `560`
+		//  Measured:  `593`
 		//  Estimated: `3642`
-		// Minimum execution time: 27_850_000 picoseconds.
-		Weight::from_parts(28_821_000, 3642)
+		// Minimum execution time: 26_775_000 picoseconds.
+		Weight::from_parts(27_667_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
 	fn award_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `572`
+		//  Measured:  `605`
 		//  Estimated: `3642`
-		// Minimum execution time: 19_164_000 picoseconds.
-		Weight::from_parts(20_136_000, 3642)
+		// Minimum execution time: 16_089_000 picoseconds.
+		Weight::from_parts(16_909_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn claim_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
+		//  Measured:  `969`
 		//  Estimated: `8799`
-		// Minimum execution time: 120_235_000 picoseconds.
-		Weight::from_parts(121_673_000, 8799)
+		// Minimum execution time: 104_973_000 picoseconds.
+		Weight::from_parts(107_696_000, 8799)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_bounty_proposed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `616`
+		//  Measured:  `649`
 		//  Estimated: `3642`
-		// Minimum execution time: 35_713_000 picoseconds.
-		Weight::from_parts(37_174_000, 3642)
+		// Minimum execution time: 30_702_000 picoseconds.
+		Weight::from_parts(32_615_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `852`
+		//  Measured:  `885`
 		//  Estimated: `6196`
-		// Minimum execution time: 81_037_000 picoseconds.
-		Weight::from_parts(83_294_000, 6196)
+		// Minimum execution time: 72_055_000 picoseconds.
+		Weight::from_parts(73_900_000, 6196)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn extend_bounty_expiry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `424`
+		//  Measured:  `457`
 		//  Estimated: `3642`
-		// Minimum execution time: 15_348_000 picoseconds.
-		Weight::from_parts(15_776_000, 3642)
+		// Minimum execution time: 12_057_000 picoseconds.
+		Weight::from_parts(12_744_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:100 w:100)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:200 w:200)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:100 w:100)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:200 w:200)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[0, 100]`.
 	fn spend_funds(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4 + b * (297 ±0)`
+		//  Measured:  `37 + b * (297 ±0)`
 		//  Estimated: `1887 + b * (5206 ±0)`
-		// Minimum execution time: 5_082_000 picoseconds.
-		Weight::from_parts(5_126_000, 1887)
-			// Standard Error: 21_949
-			.saturating_add(Weight::from_parts(42_635_308, 0).saturating_mul(b.into()))
+		// Minimum execution time: 3_489_000 picoseconds.
+		Weight::from_parts(8_384_129, 1887)
+			// Standard Error: 18_066
+			.saturating_add(Weight::from_parts(31_612_331, 0).saturating_mul(b.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
@@ -236,168 +235,168 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Bounties BountyCount (r:1 w:1)
-	/// Proof: Bounties BountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:0 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyCount` (r:1 w:1)
+	/// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:0 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 300]`.
 	fn propose_bounty(d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `276`
+		//  Measured:  `309`
 		//  Estimated: `3593`
-		// Minimum execution time: 29_384_000 picoseconds.
-		Weight::from_parts(30_820_018, 3593)
-			// Standard Error: 298
-			.saturating_add(Weight::from_parts(2_920, 0).saturating_mul(d.into()))
+		// Minimum execution time: 24_286_000 picoseconds.
+		Weight::from_parts(25_657_314, 3593)
+			// Standard Error: 215
+			.saturating_add(Weight::from_parts(1_116, 0).saturating_mul(d.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn approve_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `368`
+		//  Measured:  `401`
 		//  Estimated: `3642`
-		// Minimum execution time: 10_873_000 picoseconds.
-		Weight::from_parts(11_421_000, 3642)
+		// Minimum execution time: 12_526_000 picoseconds.
+		Weight::from_parts(13_373_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `388`
+		//  Measured:  `421`
 		//  Estimated: `3642`
-		// Minimum execution time: 9_181_000 picoseconds.
-		Weight::from_parts(9_726_000, 3642)
+		// Minimum execution time: 11_807_000 picoseconds.
+		Weight::from_parts(12_340_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `564`
+		//  Measured:  `597`
 		//  Estimated: `3642`
-		// Minimum execution time: 30_257_000 picoseconds.
-		Weight::from_parts(30_751_000, 3642)
+		// Minimum execution time: 27_183_000 picoseconds.
+		Weight::from_parts(28_250_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `560`
+		//  Measured:  `593`
 		//  Estimated: `3642`
-		// Minimum execution time: 27_850_000 picoseconds.
-		Weight::from_parts(28_821_000, 3642)
+		// Minimum execution time: 26_775_000 picoseconds.
+		Weight::from_parts(27_667_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
 	fn award_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `572`
+		//  Measured:  `605`
 		//  Estimated: `3642`
-		// Minimum execution time: 19_164_000 picoseconds.
-		Weight::from_parts(20_136_000, 3642)
+		// Minimum execution time: 16_089_000 picoseconds.
+		Weight::from_parts(16_909_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn claim_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
+		//  Measured:  `969`
 		//  Estimated: `8799`
-		// Minimum execution time: 120_235_000 picoseconds.
-		Weight::from_parts(121_673_000, 8799)
+		// Minimum execution time: 104_973_000 picoseconds.
+		Weight::from_parts(107_696_000, 8799)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_bounty_proposed() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `616`
+		//  Measured:  `649`
 		//  Estimated: `3642`
-		// Minimum execution time: 35_713_000 picoseconds.
-		Weight::from_parts(37_174_000, 3642)
+		// Minimum execution time: 30_702_000 picoseconds.
+		Weight::from_parts(32_615_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:0)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyDescriptions (r:0 w:1)
-	/// Proof: Bounties BountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyDescriptions` (r:0 w:1)
+	/// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `852`
+		//  Measured:  `885`
 		//  Estimated: `6196`
-		// Minimum execution time: 81_037_000 picoseconds.
-		Weight::from_parts(83_294_000, 6196)
+		// Minimum execution time: 72_055_000 picoseconds.
+		Weight::from_parts(73_900_000, 6196)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:1)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:1)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
 	fn extend_bounty_expiry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `424`
+		//  Measured:  `457`
 		//  Estimated: `3642`
-		// Minimum execution time: 15_348_000 picoseconds.
-		Weight::from_parts(15_776_000, 3642)
+		// Minimum execution time: 12_057_000 picoseconds.
+		Weight::from_parts(12_744_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:100 w:100)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:200 w:200)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:100 w:100)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:200 w:200)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[0, 100]`.
 	fn spend_funds(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4 + b * (297 ±0)`
+		//  Measured:  `37 + b * (297 ±0)`
 		//  Estimated: `1887 + b * (5206 ±0)`
-		// Minimum execution time: 5_082_000 picoseconds.
-		Weight::from_parts(5_126_000, 1887)
-			// Standard Error: 21_949
-			.saturating_add(Weight::from_parts(42_635_308, 0).saturating_mul(b.into()))
+		// Minimum execution time: 3_489_000 picoseconds.
+		Weight::from_parts(8_384_129, 1887)
+			// Standard Error: 18_066
+			.saturating_add(Weight::from_parts(31_612_331, 0).saturating_mul(b.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(b.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
diff --git a/substrate/frame/broker/src/weights.rs b/substrate/frame/broker/src/weights.rs
index a8f50eeee6e..133ea63e35f 100644
--- a/substrate/frame/broker/src/weights.rs
+++ b/substrate/frame/broker/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_broker`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-09-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-pzhd7p6z-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_broker
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_broker
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/broker/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -87,8 +89,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_040_000 picoseconds.
-		Weight::from_parts(3_344_000, 0)
+		// Minimum execution time: 2_701_000 picoseconds.
+		Weight::from_parts(2_902_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Broker::Reservations` (r:1 w:1)
@@ -97,8 +99,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `5016`
 		//  Estimated: `7496`
-		// Minimum execution time: 21_259_000 picoseconds.
-		Weight::from_parts(22_110_000, 7496)
+		// Minimum execution time: 18_056_000 picoseconds.
+		Weight::from_parts(19_093_000, 7496)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -108,8 +110,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6218`
 		//  Estimated: `7496`
-		// Minimum execution time: 20_330_000 picoseconds.
-		Weight::from_parts(20_826_000, 7496)
+		// Minimum execution time: 17_233_000 picoseconds.
+		Weight::from_parts(17_788_000, 7496)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -119,8 +121,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `239`
 		//  Estimated: `1526`
-		// Minimum execution time: 13_411_000 picoseconds.
-		Weight::from_parts(13_960_000, 1526)
+		// Minimum execution time: 9_740_000 picoseconds.
+		Weight::from_parts(10_504_000, 1526)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -139,14 +141,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `Broker::Workplan` (r:0 w:10)
 	/// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
-	fn start_sales(n: u32, ) -> Weight {
+	fn start_sales(_n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6330`
 		//  Estimated: `8499`
-		// Minimum execution time: 57_770_000 picoseconds.
-		Weight::from_parts(61_047_512, 8499)
-			// Standard Error: 165
-			.saturating_add(Weight::from_parts(3, 0).saturating_mul(n.into()))
+		// Minimum execution time: 49_728_000 picoseconds.
+		Weight::from_parts(52_765_861, 8499)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(16_u64))
 	}
@@ -162,10 +162,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Broker::Regions` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn purchase() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `568`
-		//  Estimated: `2053`
-		// Minimum execution time: 51_196_000 picoseconds.
-		Weight::from_parts(52_382_000, 2053)
+		//  Measured:  `635`
+		//  Estimated: `2120`
+		// Minimum execution time: 41_986_000 picoseconds.
+		Weight::from_parts(43_465_000, 2120)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -185,10 +185,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`)
 	fn renew() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `686`
+		//  Measured:  `753`
 		//  Estimated: `4698`
-		// Minimum execution time: 71_636_000 picoseconds.
-		Weight::from_parts(73_679_000, 4698)
+		// Minimum execution time: 61_779_000 picoseconds.
+		Weight::from_parts(62_563_000, 4698)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -198,8 +198,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 19_182_000 picoseconds.
-		Weight::from_parts(19_775_000, 3550)
+		// Minimum execution time: 16_962_000 picoseconds.
+		Weight::from_parts(17_733_000, 3550)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -209,21 +209,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 20_688_000 picoseconds.
-		Weight::from_parts(21_557_000, 3550)
+		// Minimum execution time: 18_380_000 picoseconds.
+		Weight::from_parts(19_105_000, 3550)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: `Broker::Regions` (r:1 w:2)
+	/// Storage: `Broker::Regions` (r:1 w:3)
 	/// Proof: `Broker::Regions` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn interlace() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 21_190_000 picoseconds.
-		Weight::from_parts(22_215_000, 3550)
+		// Minimum execution time: 20_115_000 picoseconds.
+		Weight::from_parts(20_741_000, 3550)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
-			.saturating_add(T::DbWeight::get().writes(2_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Broker::Configuration` (r:1 w:0)
 	/// Proof: `Broker::Configuration` (`max_values`: Some(1), `max_size`: Some(31), added: 526, mode: `MaxEncodedLen`)
@@ -237,8 +237,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `740`
 		//  Estimated: `4681`
-		// Minimum execution time: 34_591_000 picoseconds.
-		Weight::from_parts(36_227_000, 4681)
+		// Minimum execution time: 31_339_000 picoseconds.
+		Weight::from_parts(32_639_000, 4681)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -256,8 +256,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `775`
 		//  Estimated: `5996`
-		// Minimum execution time: 40_346_000 picoseconds.
-		Weight::from_parts(41_951_000, 5996)
+		// Minimum execution time: 37_542_000 picoseconds.
+		Weight::from_parts(38_521_000, 5996)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
@@ -272,10 +272,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `859`
 		//  Estimated: `6196 + m * (2520 ±0)`
-		// Minimum execution time: 75_734_000 picoseconds.
-		Weight::from_parts(78_168_395, 6196)
-			// Standard Error: 63_180
-			.saturating_add(Weight::from_parts(1_076_259, 0).saturating_mul(m.into()))
+		// Minimum execution time: 66_176_000 picoseconds.
+		Weight::from_parts(68_356_745, 6196)
+			// Standard Error: 68_008
+			.saturating_add(Weight::from_parts(1_558_419, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into())))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
@@ -287,8 +287,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `3593`
-		// Minimum execution time: 46_383_000 picoseconds.
-		Weight::from_parts(47_405_000, 3593)
+		// Minimum execution time: 41_130_000 picoseconds.
+		Weight::from_parts(41_914_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -300,8 +300,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `603`
 		//  Estimated: `3550`
-		// Minimum execution time: 30_994_000 picoseconds.
-		Weight::from_parts(31_979_000, 3550)
+		// Minimum execution time: 31_042_000 picoseconds.
+		Weight::from_parts(34_087_000, 3550)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -315,8 +315,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `601`
 		//  Estimated: `3533`
-		// Minimum execution time: 37_584_000 picoseconds.
-		Weight::from_parts(44_010_000, 3533)
+		// Minimum execution time: 39_116_000 picoseconds.
+		Weight::from_parts(39_990_000, 3533)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -330,10 +330,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn drop_history() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `830`
+		//  Measured:  `995`
 		//  Estimated: `3593`
-		// Minimum execution time: 45_266_000 picoseconds.
-		Weight::from_parts(48_000_000, 3593)
+		// Minimum execution time: 47_547_000 picoseconds.
+		Weight::from_parts(50_274_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -343,34 +343,32 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Broker::AllowedRenewals` (`max_values`: None, `max_size`: Some(1233), added: 3708, mode: `MaxEncodedLen`)
 	fn drop_renewal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
+		//  Measured:  `661`
 		//  Estimated: `4698`
-		// Minimum execution time: 25_365_000 picoseconds.
-		Weight::from_parts(26_920_000, 4698)
+		// Minimum execution time: 26_707_000 picoseconds.
+		Weight::from_parts(27_217_000, 4698)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// The range of component `n` is `[0, 1000]`.
-	fn request_core_count(n: u32, ) -> Weight {
+	fn request_core_count(_n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_519_000 picoseconds.
-		Weight::from_parts(7_098_698, 0)
-			// Standard Error: 20
-			.saturating_add(Weight::from_parts(8, 0).saturating_mul(n.into()))
+		// Minimum execution time: 4_651_000 picoseconds.
+		Weight::from_parts(5_231_385, 0)
 	}
-	/// Storage: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
-	/// Proof: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
+	/// Storage: `Broker::CoreCountInbox` (r:1 w:1)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn process_core_count(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `98`
-		//  Estimated: `3563`
-		// Minimum execution time: 7_608_000 picoseconds.
-		Weight::from_parts(8_157_815, 3563)
-			// Standard Error: 26
-			.saturating_add(Weight::from_parts(48, 0).saturating_mul(n.into()))
+		//  Measured:  `404`
+		//  Estimated: `1487`
+		// Minimum execution time: 6_806_000 picoseconds.
+		Weight::from_parts(7_264_002, 1487)
+			// Standard Error: 21
+			.saturating_add(Weight::from_parts(31, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -386,10 +384,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn process_revenue() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `905`
-		//  Estimated: `4370`
-		// Minimum execution time: 59_993_000 picoseconds.
-		Weight::from_parts(61_752_000, 4370)
+		//  Measured:  `972`
+		//  Estimated: `4437`
+		// Minimum execution time: 48_297_000 picoseconds.
+		Weight::from_parts(49_613_000, 4437)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -408,10 +406,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `6281`
 		//  Estimated: `8499`
-		// Minimum execution time: 41_863_000 picoseconds.
-		Weight::from_parts(44_033_031, 8499)
-			// Standard Error: 116
-			.saturating_add(Weight::from_parts(764, 0).saturating_mul(n.into()))
+		// Minimum execution time: 36_715_000 picoseconds.
+		Weight::from_parts(38_580_380, 8499)
+			// Standard Error: 91
+			.saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(15_u64))
 	}
@@ -423,8 +421,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3493`
-		// Minimum execution time: 9_588_000 picoseconds.
-		Weight::from_parts(9_925_000, 3493)
+		// Minimum execution time: 7_564_000 picoseconds.
+		Weight::from_parts(7_932_000, 3493)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -436,8 +434,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1423`
 		//  Estimated: `4681`
-		// Minimum execution time: 19_308_000 picoseconds.
-		Weight::from_parts(20_482_000, 4681)
+		// Minimum execution time: 17_082_000 picoseconds.
+		Weight::from_parts(17_662_000, 4681)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -445,28 +443,35 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 147_000 picoseconds.
-		Weight::from_parts(184_000, 0)
+		// Minimum execution time: 175_000 picoseconds.
+		Weight::from_parts(223_000, 0)
 	}
+	/// Storage: `Broker::CoreCountInbox` (r:0 w:1)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	fn notify_core_count() -> Weight {
-		T::DbWeight::get().reads_writes(1, 1)
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 2_432_000 picoseconds.
+		Weight::from_parts(2_536_000, 0)
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Broker::Status` (r:1 w:1)
 	/// Proof: `Broker::Status` (`max_values`: Some(1), `max_size`: Some(18), added: 513, mode: `MaxEncodedLen`)
 	/// Storage: `Broker::Configuration` (r:1 w:0)
 	/// Proof: `Broker::Configuration` (`max_values`: Some(1), `max_size`: Some(31), added: 526, mode: `MaxEncodedLen`)
-	/// Storage: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
-	/// Proof: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
+	/// Storage: `Broker::CoreCountInbox` (r:1 w:0)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0xf308d869daf021a7724e69c557dd8dbe` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0xf308d869daf021a7724e69c557dd8dbe` (r:1 w:1)
 	fn do_tick_base() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `699`
-		//  Estimated: `4164`
-		// Minimum execution time: 19_824_000 picoseconds.
-		Weight::from_parts(20_983_000, 4164)
+		//  Measured:  `603`
+		//  Estimated: `4068`
+		// Minimum execution time: 13_080_000 picoseconds.
+		Weight::from_parts(13_937_000, 4068)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
@@ -478,8 +483,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_040_000 picoseconds.
-		Weight::from_parts(3_344_000, 0)
+		// Minimum execution time: 2_701_000 picoseconds.
+		Weight::from_parts(2_902_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Broker::Reservations` (r:1 w:1)
@@ -488,8 +493,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `5016`
 		//  Estimated: `7496`
-		// Minimum execution time: 21_259_000 picoseconds.
-		Weight::from_parts(22_110_000, 7496)
+		// Minimum execution time: 18_056_000 picoseconds.
+		Weight::from_parts(19_093_000, 7496)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -499,8 +504,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `6218`
 		//  Estimated: `7496`
-		// Minimum execution time: 20_330_000 picoseconds.
-		Weight::from_parts(20_826_000, 7496)
+		// Minimum execution time: 17_233_000 picoseconds.
+		Weight::from_parts(17_788_000, 7496)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -510,8 +515,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `239`
 		//  Estimated: `1526`
-		// Minimum execution time: 13_411_000 picoseconds.
-		Weight::from_parts(13_960_000, 1526)
+		// Minimum execution time: 9_740_000 picoseconds.
+		Weight::from_parts(10_504_000, 1526)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -530,14 +535,12 @@ impl WeightInfo for () {
 	/// Storage: `Broker::Workplan` (r:0 w:10)
 	/// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
-	fn start_sales(n: u32, ) -> Weight {
+	fn start_sales(_n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6330`
 		//  Estimated: `8499`
-		// Minimum execution time: 57_770_000 picoseconds.
-		Weight::from_parts(61_047_512, 8499)
-			// Standard Error: 165
-			.saturating_add(Weight::from_parts(3, 0).saturating_mul(n.into()))
+		// Minimum execution time: 49_728_000 picoseconds.
+		Weight::from_parts(52_765_861, 8499)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(16_u64))
 	}
@@ -553,10 +556,10 @@ impl WeightInfo for () {
 	/// Proof: `Broker::Regions` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn purchase() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `568`
-		//  Estimated: `2053`
-		// Minimum execution time: 51_196_000 picoseconds.
-		Weight::from_parts(52_382_000, 2053)
+		//  Measured:  `635`
+		//  Estimated: `2120`
+		// Minimum execution time: 41_986_000 picoseconds.
+		Weight::from_parts(43_465_000, 2120)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -576,10 +579,10 @@ impl WeightInfo for () {
 	/// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`)
 	fn renew() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `686`
+		//  Measured:  `753`
 		//  Estimated: `4698`
-		// Minimum execution time: 71_636_000 picoseconds.
-		Weight::from_parts(73_679_000, 4698)
+		// Minimum execution time: 61_779_000 picoseconds.
+		Weight::from_parts(62_563_000, 4698)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -589,8 +592,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 19_182_000 picoseconds.
-		Weight::from_parts(19_775_000, 3550)
+		// Minimum execution time: 16_962_000 picoseconds.
+		Weight::from_parts(17_733_000, 3550)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -600,21 +603,21 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 20_688_000 picoseconds.
-		Weight::from_parts(21_557_000, 3550)
+		// Minimum execution time: 18_380_000 picoseconds.
+		Weight::from_parts(19_105_000, 3550)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: `Broker::Regions` (r:1 w:2)
+	/// Storage: `Broker::Regions` (r:1 w:3)
 	/// Proof: `Broker::Regions` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn interlace() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3550`
-		// Minimum execution time: 21_190_000 picoseconds.
-		Weight::from_parts(22_215_000, 3550)
+		// Minimum execution time: 20_115_000 picoseconds.
+		Weight::from_parts(20_741_000, 3550)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
-			.saturating_add(RocksDbWeight::get().writes(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Broker::Configuration` (r:1 w:0)
 	/// Proof: `Broker::Configuration` (`max_values`: Some(1), `max_size`: Some(31), added: 526, mode: `MaxEncodedLen`)
@@ -628,8 +631,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `740`
 		//  Estimated: `4681`
-		// Minimum execution time: 34_591_000 picoseconds.
-		Weight::from_parts(36_227_000, 4681)
+		// Minimum execution time: 31_339_000 picoseconds.
+		Weight::from_parts(32_639_000, 4681)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -647,8 +650,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `775`
 		//  Estimated: `5996`
-		// Minimum execution time: 40_346_000 picoseconds.
-		Weight::from_parts(41_951_000, 5996)
+		// Minimum execution time: 37_542_000 picoseconds.
+		Weight::from_parts(38_521_000, 5996)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
@@ -663,10 +666,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `859`
 		//  Estimated: `6196 + m * (2520 ±0)`
-		// Minimum execution time: 75_734_000 picoseconds.
-		Weight::from_parts(78_168_395, 6196)
-			// Standard Error: 63_180
-			.saturating_add(Weight::from_parts(1_076_259, 0).saturating_mul(m.into()))
+		// Minimum execution time: 66_176_000 picoseconds.
+		Weight::from_parts(68_356_745, 6196)
+			// Standard Error: 68_008
+			.saturating_add(Weight::from_parts(1_558_419, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(m.into())))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
@@ -678,8 +681,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `103`
 		//  Estimated: `3593`
-		// Minimum execution time: 46_383_000 picoseconds.
-		Weight::from_parts(47_405_000, 3593)
+		// Minimum execution time: 41_130_000 picoseconds.
+		Weight::from_parts(41_914_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -691,8 +694,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `603`
 		//  Estimated: `3550`
-		// Minimum execution time: 30_994_000 picoseconds.
-		Weight::from_parts(31_979_000, 3550)
+		// Minimum execution time: 31_042_000 picoseconds.
+		Weight::from_parts(34_087_000, 3550)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -706,8 +709,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `601`
 		//  Estimated: `3533`
-		// Minimum execution time: 37_584_000 picoseconds.
-		Weight::from_parts(44_010_000, 3533)
+		// Minimum execution time: 39_116_000 picoseconds.
+		Weight::from_parts(39_990_000, 3533)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -721,10 +724,10 @@ impl WeightInfo for () {
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn drop_history() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `830`
+		//  Measured:  `995`
 		//  Estimated: `3593`
-		// Minimum execution time: 45_266_000 picoseconds.
-		Weight::from_parts(48_000_000, 3593)
+		// Minimum execution time: 47_547_000 picoseconds.
+		Weight::from_parts(50_274_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -734,34 +737,32 @@ impl WeightInfo for () {
 	/// Proof: `Broker::AllowedRenewals` (`max_values`: None, `max_size`: Some(1233), added: 3708, mode: `MaxEncodedLen`)
 	fn drop_renewal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `525`
+		//  Measured:  `661`
 		//  Estimated: `4698`
-		// Minimum execution time: 25_365_000 picoseconds.
-		Weight::from_parts(26_920_000, 4698)
+		// Minimum execution time: 26_707_000 picoseconds.
+		Weight::from_parts(27_217_000, 4698)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// The range of component `n` is `[0, 1000]`.
-	fn request_core_count(n: u32, ) -> Weight {
+	fn request_core_count(_n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_519_000 picoseconds.
-		Weight::from_parts(7_098_698, 0)
-			// Standard Error: 20
-			.saturating_add(Weight::from_parts(8, 0).saturating_mul(n.into()))
+		// Minimum execution time: 4_651_000 picoseconds.
+		Weight::from_parts(5_231_385, 0)
 	}
-	/// Storage: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
-	/// Proof: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
+	/// Storage: `Broker::CoreCountInbox` (r:1 w:1)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn process_core_count(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `98`
-		//  Estimated: `3563`
-		// Minimum execution time: 7_608_000 picoseconds.
-		Weight::from_parts(8_157_815, 3563)
-			// Standard Error: 26
-			.saturating_add(Weight::from_parts(48, 0).saturating_mul(n.into()))
+		//  Measured:  `404`
+		//  Estimated: `1487`
+		// Minimum execution time: 6_806_000 picoseconds.
+		Weight::from_parts(7_264_002, 1487)
+			// Standard Error: 21
+			.saturating_add(Weight::from_parts(31, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -777,10 +778,10 @@ impl WeightInfo for () {
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn process_revenue() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `905`
-		//  Estimated: `4370`
-		// Minimum execution time: 59_993_000 picoseconds.
-		Weight::from_parts(61_752_000, 4370)
+		//  Measured:  `972`
+		//  Estimated: `4437`
+		// Minimum execution time: 48_297_000 picoseconds.
+		Weight::from_parts(49_613_000, 4437)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -799,10 +800,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `6281`
 		//  Estimated: `8499`
-		// Minimum execution time: 41_863_000 picoseconds.
-		Weight::from_parts(44_033_031, 8499)
-			// Standard Error: 116
-			.saturating_add(Weight::from_parts(764, 0).saturating_mul(n.into()))
+		// Minimum execution time: 36_715_000 picoseconds.
+		Weight::from_parts(38_580_380, 8499)
+			// Standard Error: 91
+			.saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(15_u64))
 	}
@@ -814,8 +815,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3493`
-		// Minimum execution time: 9_588_000 picoseconds.
-		Weight::from_parts(9_925_000, 3493)
+		// Minimum execution time: 7_564_000 picoseconds.
+		Weight::from_parts(7_932_000, 3493)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -827,8 +828,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1423`
 		//  Estimated: `4681`
-		// Minimum execution time: 19_308_000 picoseconds.
-		Weight::from_parts(20_482_000, 4681)
+		// Minimum execution time: 17_082_000 picoseconds.
+		Weight::from_parts(17_662_000, 4681)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -836,28 +837,34 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 147_000 picoseconds.
-		Weight::from_parts(184_000, 0)
+		// Minimum execution time: 175_000 picoseconds.
+		Weight::from_parts(223_000, 0)
 	}
+	/// Storage: `Broker::CoreCountInbox` (r:0 w:1)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	fn notify_core_count() -> Weight {
-		RocksDbWeight::get().reads(1)
-			.saturating_add(RocksDbWeight::get().writes(1))
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 2_432_000 picoseconds.
+		Weight::from_parts(2_536_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Broker::Status` (r:1 w:1)
 	/// Proof: `Broker::Status` (`max_values`: Some(1), `max_size`: Some(18), added: 513, mode: `MaxEncodedLen`)
 	/// Storage: `Broker::Configuration` (r:1 w:0)
 	/// Proof: `Broker::Configuration` (`max_values`: Some(1), `max_size`: Some(31), added: 526, mode: `MaxEncodedLen`)
-	/// Storage: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
-	/// Proof: UNKNOWN KEY `0x18194fcb5c1fcace44d2d0a004272614` (r:1 w:1)
+	/// Storage: `Broker::CoreCountInbox` (r:1 w:0)
+	/// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0xf308d869daf021a7724e69c557dd8dbe` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0xf308d869daf021a7724e69c557dd8dbe` (r:1 w:1)
 	fn do_tick_base() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `699`
-		//  Estimated: `4164`
-		// Minimum execution time: 19_824_000 picoseconds.
-		Weight::from_parts(20_983_000, 4164)
+		//  Measured:  `603`
+		//  Estimated: `4068`
+		// Minimum execution time: 13_080_000 picoseconds.
+		Weight::from_parts(13_937_000, 4068)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 }
diff --git a/substrate/frame/child-bounties/src/weights.rs b/substrate/frame/child-bounties/src/weights.rs
index e4c1f238e88..6427517b45b 100644
--- a/substrate/frame/child-bounties/src/weights.rs
+++ b/substrate/frame/child-bounties/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_child_bounties
+//! Autogenerated weights for `pallet_child_bounties`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/child-bounties/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/child-bounties/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_child_bounties.
+/// Weight functions needed for `pallet_child_bounties`.
 pub trait WeightInfo {
 	fn add_child_bounty(d: u32, ) -> Weight;
 	fn propose_curator() -> Weight;
@@ -62,288 +61,288 @@ pub trait WeightInfo {
 	fn close_child_bounty_active() -> Weight;
 }
 
-/// Weights for pallet_child_bounties using the Substrate node and recommended hardware.
+/// Weights for `pallet_child_bounties` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyCount (r:1 w:1)
-	/// Proof: ChildBounties ChildBountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:0 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 300]`.
 	fn add_child_bounty(_d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `712`
+		//  Measured:  `745`
 		//  Estimated: `6196`
-		// Minimum execution time: 69_805_000 picoseconds.
-		Weight::from_parts(73_216_717, 6196)
+		// Minimum execution time: 60_674_000 picoseconds.
+		Weight::from_parts(63_477_428, 6196)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `766`
+		//  Measured:  `799`
 		//  Estimated: `3642`
-		// Minimum execution time: 18_190_000 picoseconds.
-		Weight::from_parts(18_932_000, 3642)
+		// Minimum execution time: 17_754_000 picoseconds.
+		Weight::from_parts(18_655_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `912`
+		//  Measured:  `945`
 		//  Estimated: `3642`
-		// Minimum execution time: 35_035_000 picoseconds.
-		Weight::from_parts(35_975_000, 3642)
+		// Minimum execution time: 31_580_000 picoseconds.
+		Weight::from_parts(32_499_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `912`
+		//  Measured:  `945`
 		//  Estimated: `3642`
-		// Minimum execution time: 37_636_000 picoseconds.
-		Weight::from_parts(38_610_000, 3642)
+		// Minimum execution time: 33_536_000 picoseconds.
+		Weight::from_parts(34_102_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	fn award_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `809`
+		//  Measured:  `842`
 		//  Estimated: `3642`
-		// Minimum execution time: 22_457_000 picoseconds.
-		Weight::from_parts(23_691_000, 3642)
+		// Minimum execution time: 18_295_000 picoseconds.
+		Weight::from_parts(19_496_000, 3642)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn claim_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `682`
 		//  Estimated: `8799`
-		// Minimum execution time: 118_272_000 picoseconds.
-		Weight::from_parts(121_646_000, 8799)
+		// Minimum execution time: 102_367_000 picoseconds.
+		Weight::from_parts(104_352_000, 8799)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_child_bounty_added() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1012`
+		//  Measured:  `1045`
 		//  Estimated: `6196`
-		// Minimum execution time: 75_717_000 picoseconds.
-		Weight::from_parts(77_837_000, 6196)
+		// Minimum execution time: 69_051_000 picoseconds.
+		Weight::from_parts(71_297_000, 6196)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_child_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1199`
+		//  Measured:  `1232`
 		//  Estimated: `8799`
-		// Minimum execution time: 94_215_000 picoseconds.
-		Weight::from_parts(97_017_000, 8799)
+		// Minimum execution time: 84_053_000 picoseconds.
+		Weight::from_parts(86_072_000, 8799)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyCount (r:1 w:1)
-	/// Proof: ChildBounties ChildBountyCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:0 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	/// The range of component `d` is `[0, 300]`.
 	fn add_child_bounty(_d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `712`
+		//  Measured:  `745`
 		//  Estimated: `6196`
-		// Minimum execution time: 69_805_000 picoseconds.
-		Weight::from_parts(73_216_717, 6196)
+		// Minimum execution time: 60_674_000 picoseconds.
+		Weight::from_parts(63_477_428, 6196)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
 	fn propose_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `766`
+		//  Measured:  `799`
 		//  Estimated: `3642`
-		// Minimum execution time: 18_190_000 picoseconds.
-		Weight::from_parts(18_932_000, 3642)
+		// Minimum execution time: 17_754_000 picoseconds.
+		Weight::from_parts(18_655_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn accept_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `912`
+		//  Measured:  `945`
 		//  Estimated: `3642`
-		// Minimum execution time: 35_035_000 picoseconds.
-		Weight::from_parts(35_975_000, 3642)
+		// Minimum execution time: 31_580_000 picoseconds.
+		Weight::from_parts(32_499_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn unassign_curator() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `912`
+		//  Measured:  `945`
 		//  Estimated: `3642`
-		// Minimum execution time: 37_636_000 picoseconds.
-		Weight::from_parts(38_610_000, 3642)
+		// Minimum execution time: 33_536_000 picoseconds.
+		Weight::from_parts(34_102_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
 	fn award_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `809`
+		//  Measured:  `842`
 		//  Estimated: `3642`
-		// Minimum execution time: 22_457_000 picoseconds.
-		Weight::from_parts(23_691_000, 3642)
+		// Minimum execution time: 18_295_000 picoseconds.
+		Weight::from_parts(19_496_000, 3642)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn claim_child_bounty() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `682`
 		//  Estimated: `8799`
-		// Minimum execution time: 118_272_000 picoseconds.
-		Weight::from_parts(121_646_000, 8799)
+		// Minimum execution time: 102_367_000 picoseconds.
+		Weight::from_parts(104_352_000, 8799)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_child_bounty_added() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1012`
+		//  Measured:  `1045`
 		//  Estimated: `6196`
-		// Minimum execution time: 75_717_000 picoseconds.
-		Weight::from_parts(77_837_000, 6196)
+		// Minimum execution time: 69_051_000 picoseconds.
+		Weight::from_parts(71_297_000, 6196)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Bounties Bounties (r:1 w:0)
-	/// Proof: Bounties Bounties (max_values: None, max_size: Some(177), added: 2652, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ChildBounties (max_values: None, max_size: Some(145), added: 2620, mode: MaxEncodedLen)
-	/// Storage: System Account (r:3 w:3)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildrenCuratorFees (r:1 w:1)
-	/// Proof: ChildBounties ChildrenCuratorFees (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ParentChildBounties (r:1 w:1)
-	/// Proof: ChildBounties ParentChildBounties (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: ChildBounties ChildBountyDescriptions (r:0 w:1)
-	/// Proof: ChildBounties ChildBountyDescriptions (max_values: None, max_size: Some(314), added: 2789, mode: MaxEncodedLen)
+	/// Storage: `Bounties::Bounties` (r:1 w:0)
+	/// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:3 w:3)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1)
+	/// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1)
+	/// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1)
+	/// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(314), added: 2789, mode: `MaxEncodedLen`)
 	fn close_child_bounty_active() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1199`
+		//  Measured:  `1232`
 		//  Estimated: `8799`
-		// Minimum execution time: 94_215_000 picoseconds.
-		Weight::from_parts(97_017_000, 8799)
+		// Minimum execution time: 84_053_000 picoseconds.
+		Weight::from_parts(86_072_000, 8799)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
diff --git a/substrate/frame/collective/src/tests.rs b/substrate/frame/collective/src/tests.rs
index aae17b7ffc2..ac5797c638c 100644
--- a/substrate/frame/collective/src/tests.rs
+++ b/substrate/frame/collective/src/tests.rs
@@ -29,7 +29,7 @@ use sp_core::H256;
 use sp_runtime::{testing::Header, traits::BlakeTwo256, BuildStorage};
 
 pub type Block = sp_runtime::generic::Block<Header, UncheckedExtrinsic>;
-pub type UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic<u32, u64, RuntimeCall, ()>;
+pub type UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic<u32, RuntimeCall, u64, ()>;
 
 frame_support::construct_runtime!(
 	pub enum Test
diff --git a/substrate/frame/collective/src/weights.rs b/substrate/frame/collective/src/weights.rs
index eece6a006b8..85744b4de9d 100644
--- a/substrate/frame/collective/src/weights.rs
+++ b/substrate/frame/collective/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_collective
+//! Autogenerated weights for `pallet_collective`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/collective/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/collective/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_collective.
+/// Weight functions needed for `pallet_collective`.
 pub trait WeightInfo {
 	fn set_members(m: u32, n: u32, p: u32, ) -> Weight;
 	fn execute(b: u32, m: u32, ) -> Weight;
@@ -64,30 +63,30 @@ pub trait WeightInfo {
 	fn disapprove_proposal(p: u32, ) -> Weight;
 }
 
-/// Weights for pallet_collective using the Substrate node and recommended hardware.
+/// Weights for `pallet_collective` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Council Members (r:1 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:100 w:100)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:0 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:100 w:100)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:0 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[0, 100]`.
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `p` is `[0, 100]`.
 	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (3232 ±0) + p * (3190 ±0)`
-		//  Estimated: `15861 + m * (1967 ±24) + p * (4332 ±24)`
-		// Minimum execution time: 17_506_000 picoseconds.
-		Weight::from_parts(17_767_000, 15861)
-			// Standard Error: 60_220
-			.saturating_add(Weight::from_parts(4_374_805, 0).saturating_mul(m.into()))
-			// Standard Error: 60_220
-			.saturating_add(Weight::from_parts(8_398_316, 0).saturating_mul(p.into()))
+		//  Estimated: `15894 + m * (1967 ±23) + p * (4332 ±23)`
+		// Minimum execution time: 15_559_000 picoseconds.
+		Weight::from_parts(15_870_000, 15894)
+			// Standard Error: 54_310
+			.saturating_add(Weight::from_parts(4_117_753, 0).saturating_mul(m.into()))
+			// Standard Error: 54_310
+			.saturating_add(Weight::from_parts(7_677_627, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
@@ -95,245 +94,261 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 			.saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[1, 100]`.
 	fn execute(b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `202 + m * (32 ±0)`
-		//  Estimated: `1688 + m * (32 ±0)`
-		// Minimum execution time: 16_203_000 picoseconds.
-		Weight::from_parts(15_348_267, 1688)
-			// Standard Error: 37
-			.saturating_add(Weight::from_parts(1_766, 0).saturating_mul(b.into()))
-			// Standard Error: 382
-			.saturating_add(Weight::from_parts(15_765, 0).saturating_mul(m.into()))
-			.saturating_add(T::DbWeight::get().reads(1_u64))
+		//  Measured:  `380 + m * (32 ±0)`
+		//  Estimated: `3997 + m * (32 ±0)`
+		// Minimum execution time: 19_024_000 picoseconds.
+		Weight::from_parts(18_153_872, 3997)
+			// Standard Error: 46
+			.saturating_add(Weight::from_parts(1_933, 0).saturating_mul(b.into()))
+			// Standard Error: 478
+			.saturating_add(Weight::from_parts(18_872, 0).saturating_mul(m.into()))
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:0)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:0)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[1, 100]`.
 	fn propose_execute(b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `202 + m * (32 ±0)`
-		//  Estimated: `3668 + m * (32 ±0)`
-		// Minimum execution time: 18_642_000 picoseconds.
-		Weight::from_parts(17_708_609, 3668)
-			// Standard Error: 58
-			.saturating_add(Weight::from_parts(2_285, 0).saturating_mul(b.into()))
-			// Standard Error: 598
-			.saturating_add(Weight::from_parts(30_454, 0).saturating_mul(m.into()))
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		//  Measured:  `380 + m * (32 ±0)`
+		//  Estimated: `3997 + m * (32 ±0)`
+		// Minimum execution time: 20_895_000 picoseconds.
+		Weight::from_parts(20_081_761, 3997)
+			// Standard Error: 57
+			.saturating_add(Weight::from_parts(1_982, 0).saturating_mul(b.into()))
+			// Standard Error: 594
+			.saturating_add(Weight::from_parts(32_085, 0).saturating_mul(m.into()))
+			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalCount (r:1 w:1)
-	/// Proof Skipped: Council ProposalCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:0 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalCount` (r:1 w:1)
+	/// Proof: `Council::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:0 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `492 + m * (32 ±0) + p * (36 ±0)`
-		//  Estimated: `3884 + m * (33 ±0) + p * (36 ±0)`
-		// Minimum execution time: 27_067_000 picoseconds.
-		Weight::from_parts(25_456_964, 3884)
-			// Standard Error: 112
-			.saturating_add(Weight::from_parts(3_773, 0).saturating_mul(b.into()))
-			// Standard Error: 1_177
-			.saturating_add(Weight::from_parts(32_783, 0).saturating_mul(m.into()))
-			// Standard Error: 1_162
-			.saturating_add(Weight::from_parts(194_388, 0).saturating_mul(p.into()))
+		//  Measured:  `525 + m * (32 ±0) + p * (36 ±0)`
+		//  Estimated: `3917 + m * (33 ±0) + p * (36 ±0)`
+		// Minimum execution time: 22_068_000 picoseconds.
+		Weight::from_parts(19_639_088, 3917)
+			// Standard Error: 104
+			.saturating_add(Weight::from_parts(3_896, 0).saturating_mul(b.into()))
+			// Standard Error: 1_095
+			.saturating_add(Weight::from_parts(31_634, 0).saturating_mul(m.into()))
+			// Standard Error: 1_081
+			.saturating_add(Weight::from_parts(178_702, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[5, 100]`.
 	fn vote(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `941 + m * (64 ±0)`
-		//  Estimated: `4405 + m * (64 ±0)`
-		// Minimum execution time: 26_055_000 picoseconds.
-		Weight::from_parts(27_251_907, 4405)
-			// Standard Error: 1_008
-			.saturating_add(Weight::from_parts(65_947, 0).saturating_mul(m.into()))
+		//  Measured:  `974 + m * (64 ±0)`
+		//  Estimated: `4438 + m * (64 ±0)`
+		// Minimum execution time: 22_395_000 picoseconds.
+		Weight::from_parts(23_025_217, 4438)
+			// Standard Error: 842
+			.saturating_add(Weight::from_parts(58_102, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `530 + m * (64 ±0) + p * (36 ±0)`
-		//  Estimated: `3975 + m * (65 ±0) + p * (36 ±0)`
-		// Minimum execution time: 28_363_000 picoseconds.
-		Weight::from_parts(28_733_464, 3975)
-			// Standard Error: 1_275
-			.saturating_add(Weight::from_parts(43_236, 0).saturating_mul(m.into()))
-			// Standard Error: 1_244
-			.saturating_add(Weight::from_parts(180_187, 0).saturating_mul(p.into()))
+		//  Measured:  `563 + m * (64 ±0) + p * (36 ±0)`
+		//  Estimated: `4008 + m * (65 ±0) + p * (36 ±0)`
+		// Minimum execution time: 24_179_000 picoseconds.
+		Weight::from_parts(23_846_394, 4008)
+			// Standard Error: 1_052
+			.saturating_add(Weight::from_parts(40_418, 0).saturating_mul(m.into()))
+			// Standard Error: 1_026
+			.saturating_add(Weight::from_parts(171_653, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `832 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
-		//  Estimated: `4149 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
-		// Minimum execution time: 40_391_000 picoseconds.
-		Weight::from_parts(42_695_215, 4149)
-			// Standard Error: 167
-			.saturating_add(Weight::from_parts(3_622, 0).saturating_mul(b.into()))
-			// Standard Error: 1_772
-			.saturating_add(Weight::from_parts(33_830, 0).saturating_mul(m.into()))
-			// Standard Error: 1_727
-			.saturating_add(Weight::from_parts(205_374, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(4_u64))
+		//  Measured:  `1010 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
+		//  Estimated: `4327 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
+		// Minimum execution time: 42_129_000 picoseconds.
+		Weight::from_parts(40_808_957, 4327)
+			// Standard Error: 134
+			.saturating_add(Weight::from_parts(3_579, 0).saturating_mul(b.into()))
+			// Standard Error: 1_425
+			.saturating_add(Weight::from_parts(37_166, 0).saturating_mul(m.into()))
+			// Standard Error: 1_389
+			.saturating_add(Weight::from_parts(200_986, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
 			.saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:0)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:0)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `550 + m * (64 ±0) + p * (36 ±0)`
-		//  Estimated: `3995 + m * (65 ±0) + p * (36 ±0)`
-		// Minimum execution time: 31_368_000 picoseconds.
-		Weight::from_parts(32_141_835, 3995)
-			// Standard Error: 1_451
-			.saturating_add(Weight::from_parts(36_372, 0).saturating_mul(m.into()))
-			// Standard Error: 1_415
-			.saturating_add(Weight::from_parts(210_635, 0).saturating_mul(p.into()))
+		//  Measured:  `583 + m * (64 ±0) + p * (36 ±0)`
+		//  Estimated: `4028 + m * (65 ±0) + p * (36 ±0)`
+		// Minimum execution time: 26_385_000 picoseconds.
+		Weight::from_parts(25_713_839, 4028)
+			// Standard Error: 1_254
+			.saturating_add(Weight::from_parts(36_206, 0).saturating_mul(m.into()))
+			// Standard Error: 1_223
+			.saturating_add(Weight::from_parts(195_114, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:0)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:0)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `852 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
-		//  Estimated: `4169 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
-		// Minimum execution time: 43_271_000 picoseconds.
-		Weight::from_parts(45_495_648, 4169)
-			// Standard Error: 174
-			.saturating_add(Weight::from_parts(3_034, 0).saturating_mul(b.into()))
-			// Standard Error: 1_840
-			.saturating_add(Weight::from_parts(42_209, 0).saturating_mul(m.into()))
-			// Standard Error: 1_793
-			.saturating_add(Weight::from_parts(207_525, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(5_u64))
+		//  Measured:  `1030 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
+		//  Estimated: `4347 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
+		// Minimum execution time: 42_903_000 picoseconds.
+		Weight::from_parts(43_152_907, 4347)
+			// Standard Error: 146
+			.saturating_add(Weight::from_parts(3_459, 0).saturating_mul(b.into()))
+			// Standard Error: 1_548
+			.saturating_add(Weight::from_parts(35_321, 0).saturating_mul(m.into()))
+			// Standard Error: 1_509
+			.saturating_add(Weight::from_parts(202_541, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
 			.saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:0 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:0 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `p` is `[1, 100]`.
 	fn disapprove_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `359 + p * (32 ±0)`
-		//  Estimated: `1844 + p * (32 ±0)`
-		// Minimum execution time: 15_170_000 picoseconds.
-		Weight::from_parts(17_567_243, 1844)
-			// Standard Error: 1_430
-			.saturating_add(Weight::from_parts(169_040, 0).saturating_mul(p.into()))
+		//  Measured:  `392 + p * (32 ±0)`
+		//  Estimated: `1877 + p * (32 ±0)`
+		// Minimum execution time: 12_656_000 picoseconds.
+		Weight::from_parts(14_032_951, 1877)
+			// Standard Error: 1_025
+			.saturating_add(Weight::from_parts(159_143, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Council Members (r:1 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:100 w:100)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:0 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:100 w:100)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:0 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[0, 100]`.
 	/// The range of component `n` is `[0, 100]`.
 	/// The range of component `p` is `[0, 100]`.
 	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (3232 ±0) + p * (3190 ±0)`
-		//  Estimated: `15861 + m * (1967 ±24) + p * (4332 ±24)`
-		// Minimum execution time: 17_506_000 picoseconds.
-		Weight::from_parts(17_767_000, 15861)
-			// Standard Error: 60_220
-			.saturating_add(Weight::from_parts(4_374_805, 0).saturating_mul(m.into()))
-			// Standard Error: 60_220
-			.saturating_add(Weight::from_parts(8_398_316, 0).saturating_mul(p.into()))
+		//  Estimated: `15894 + m * (1967 ±23) + p * (4332 ±23)`
+		// Minimum execution time: 15_559_000 picoseconds.
+		Weight::from_parts(15_870_000, 15894)
+			// Standard Error: 54_310
+			.saturating_add(Weight::from_parts(4_117_753, 0).saturating_mul(m.into()))
+			// Standard Error: 54_310
+			.saturating_add(Weight::from_parts(7_677_627, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
@@ -341,216 +356,232 @@ impl WeightInfo for () {
 			.saturating_add(Weight::from_parts(0, 1967).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 4332).saturating_mul(p.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[1, 100]`.
 	fn execute(b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `202 + m * (32 ±0)`
-		//  Estimated: `1688 + m * (32 ±0)`
-		// Minimum execution time: 16_203_000 picoseconds.
-		Weight::from_parts(15_348_267, 1688)
-			// Standard Error: 37
-			.saturating_add(Weight::from_parts(1_766, 0).saturating_mul(b.into()))
-			// Standard Error: 382
-			.saturating_add(Weight::from_parts(15_765, 0).saturating_mul(m.into()))
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
+		//  Measured:  `380 + m * (32 ±0)`
+		//  Estimated: `3997 + m * (32 ±0)`
+		// Minimum execution time: 19_024_000 picoseconds.
+		Weight::from_parts(18_153_872, 3997)
+			// Standard Error: 46
+			.saturating_add(Weight::from_parts(1_933, 0).saturating_mul(b.into()))
+			// Standard Error: 478
+			.saturating_add(Weight::from_parts(18_872, 0).saturating_mul(m.into()))
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:0)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:0)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[1, 100]`.
 	fn propose_execute(b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `202 + m * (32 ±0)`
-		//  Estimated: `3668 + m * (32 ±0)`
-		// Minimum execution time: 18_642_000 picoseconds.
-		Weight::from_parts(17_708_609, 3668)
-			// Standard Error: 58
-			.saturating_add(Weight::from_parts(2_285, 0).saturating_mul(b.into()))
-			// Standard Error: 598
-			.saturating_add(Weight::from_parts(30_454, 0).saturating_mul(m.into()))
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		//  Measured:  `380 + m * (32 ±0)`
+		//  Estimated: `3997 + m * (32 ±0)`
+		// Minimum execution time: 20_895_000 picoseconds.
+		Weight::from_parts(20_081_761, 3997)
+			// Standard Error: 57
+			.saturating_add(Weight::from_parts(1_982, 0).saturating_mul(b.into()))
+			// Standard Error: 594
+			.saturating_add(Weight::from_parts(32_085, 0).saturating_mul(m.into()))
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalCount (r:1 w:1)
-	/// Proof Skipped: Council ProposalCount (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:0 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalCount` (r:1 w:1)
+	/// Proof: `Council::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:0 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[2, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `492 + m * (32 ±0) + p * (36 ±0)`
-		//  Estimated: `3884 + m * (33 ±0) + p * (36 ±0)`
-		// Minimum execution time: 27_067_000 picoseconds.
-		Weight::from_parts(25_456_964, 3884)
-			// Standard Error: 112
-			.saturating_add(Weight::from_parts(3_773, 0).saturating_mul(b.into()))
-			// Standard Error: 1_177
-			.saturating_add(Weight::from_parts(32_783, 0).saturating_mul(m.into()))
-			// Standard Error: 1_162
-			.saturating_add(Weight::from_parts(194_388, 0).saturating_mul(p.into()))
+		//  Measured:  `525 + m * (32 ±0) + p * (36 ±0)`
+		//  Estimated: `3917 + m * (33 ±0) + p * (36 ±0)`
+		// Minimum execution time: 22_068_000 picoseconds.
+		Weight::from_parts(19_639_088, 3917)
+			// Standard Error: 104
+			.saturating_add(Weight::from_parts(3_896, 0).saturating_mul(b.into()))
+			// Standard Error: 1_095
+			.saturating_add(Weight::from_parts(31_634, 0).saturating_mul(m.into()))
+			// Standard Error: 1_081
+			.saturating_add(Weight::from_parts(178_702, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 33).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[5, 100]`.
 	fn vote(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `941 + m * (64 ±0)`
-		//  Estimated: `4405 + m * (64 ±0)`
-		// Minimum execution time: 26_055_000 picoseconds.
-		Weight::from_parts(27_251_907, 4405)
-			// Standard Error: 1_008
-			.saturating_add(Weight::from_parts(65_947, 0).saturating_mul(m.into()))
+		//  Measured:  `974 + m * (64 ±0)`
+		//  Estimated: `4438 + m * (64 ±0)`
+		// Minimum execution time: 22_395_000 picoseconds.
+		Weight::from_parts(23_025_217, 4438)
+			// Standard Error: 842
+			.saturating_add(Weight::from_parts(58_102, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `530 + m * (64 ±0) + p * (36 ±0)`
-		//  Estimated: `3975 + m * (65 ±0) + p * (36 ±0)`
-		// Minimum execution time: 28_363_000 picoseconds.
-		Weight::from_parts(28_733_464, 3975)
-			// Standard Error: 1_275
-			.saturating_add(Weight::from_parts(43_236, 0).saturating_mul(m.into()))
-			// Standard Error: 1_244
-			.saturating_add(Weight::from_parts(180_187, 0).saturating_mul(p.into()))
+		//  Measured:  `563 + m * (64 ±0) + p * (36 ±0)`
+		//  Estimated: `4008 + m * (65 ±0) + p * (36 ±0)`
+		// Minimum execution time: 24_179_000 picoseconds.
+		Weight::from_parts(23_846_394, 4008)
+			// Standard Error: 1_052
+			.saturating_add(Weight::from_parts(40_418, 0).saturating_mul(m.into()))
+			// Standard Error: 1_026
+			.saturating_add(Weight::from_parts(171_653, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `832 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
-		//  Estimated: `4149 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
-		// Minimum execution time: 40_391_000 picoseconds.
-		Weight::from_parts(42_695_215, 4149)
-			// Standard Error: 167
-			.saturating_add(Weight::from_parts(3_622, 0).saturating_mul(b.into()))
-			// Standard Error: 1_772
-			.saturating_add(Weight::from_parts(33_830, 0).saturating_mul(m.into()))
-			// Standard Error: 1_727
-			.saturating_add(Weight::from_parts(205_374, 0).saturating_mul(p.into()))
-			.saturating_add(RocksDbWeight::get().reads(4_u64))
+		//  Measured:  `1010 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
+		//  Estimated: `4327 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
+		// Minimum execution time: 42_129_000 picoseconds.
+		Weight::from_parts(40_808_957, 4327)
+			// Standard Error: 134
+			.saturating_add(Weight::from_parts(3_579, 0).saturating_mul(b.into()))
+			// Standard Error: 1_425
+			.saturating_add(Weight::from_parts(37_166, 0).saturating_mul(m.into()))
+			// Standard Error: 1_389
+			.saturating_add(Weight::from_parts(200_986, 0).saturating_mul(p.into()))
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
 			.saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:0)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:0)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `550 + m * (64 ±0) + p * (36 ±0)`
-		//  Estimated: `3995 + m * (65 ±0) + p * (36 ±0)`
-		// Minimum execution time: 31_368_000 picoseconds.
-		Weight::from_parts(32_141_835, 3995)
-			// Standard Error: 1_451
-			.saturating_add(Weight::from_parts(36_372, 0).saturating_mul(m.into()))
-			// Standard Error: 1_415
-			.saturating_add(Weight::from_parts(210_635, 0).saturating_mul(p.into()))
+		//  Measured:  `583 + m * (64 ±0) + p * (36 ±0)`
+		//  Estimated: `4028 + m * (65 ±0) + p * (36 ±0)`
+		// Minimum execution time: 26_385_000 picoseconds.
+		Weight::from_parts(25_713_839, 4028)
+			// Standard Error: 1_254
+			.saturating_add(Weight::from_parts(36_206, 0).saturating_mul(m.into()))
+			// Standard Error: 1_223
+			.saturating_add(Weight::from_parts(195_114, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 65).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 36).saturating_mul(p.into()))
 	}
-	/// Storage: Council Voting (r:1 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Members (r:1 w:0)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:0)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:1 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Council::Voting` (r:1 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:1 w:0)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:0)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:1 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[4, 100]`.
 	/// The range of component `p` is `[1, 100]`.
 	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `852 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
-		//  Estimated: `4169 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
-		// Minimum execution time: 43_271_000 picoseconds.
-		Weight::from_parts(45_495_648, 4169)
-			// Standard Error: 174
-			.saturating_add(Weight::from_parts(3_034, 0).saturating_mul(b.into()))
-			// Standard Error: 1_840
-			.saturating_add(Weight::from_parts(42_209, 0).saturating_mul(m.into()))
-			// Standard Error: 1_793
-			.saturating_add(Weight::from_parts(207_525, 0).saturating_mul(p.into()))
-			.saturating_add(RocksDbWeight::get().reads(5_u64))
+		//  Measured:  `1030 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)`
+		//  Estimated: `4347 + b * (1 ±0) + m * (66 ±0) + p * (40 ±0)`
+		// Minimum execution time: 42_903_000 picoseconds.
+		Weight::from_parts(43_152_907, 4347)
+			// Standard Error: 146
+			.saturating_add(Weight::from_parts(3_459, 0).saturating_mul(b.into()))
+			// Standard Error: 1_548
+			.saturating_add(Weight::from_parts(35_321, 0).saturating_mul(m.into()))
+			// Standard Error: 1_509
+			.saturating_add(Weight::from_parts(202_541, 0).saturating_mul(p.into()))
+			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
 			.saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(p.into()))
 	}
-	/// Storage: Council Proposals (r:1 w:1)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Voting (r:0 w:1)
-	/// Proof Skipped: Council Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council ProposalOf (r:0 w:1)
-	/// Proof Skipped: Council ProposalOf (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Council::Proposals` (r:1 w:1)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Voting` (r:0 w:1)
+	/// Proof: `Council::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::ProposalOf` (r:0 w:1)
+	/// Proof: `Council::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `p` is `[1, 100]`.
 	fn disapprove_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `359 + p * (32 ±0)`
-		//  Estimated: `1844 + p * (32 ±0)`
-		// Minimum execution time: 15_170_000 picoseconds.
-		Weight::from_parts(17_567_243, 1844)
-			// Standard Error: 1_430
-			.saturating_add(Weight::from_parts(169_040, 0).saturating_mul(p.into()))
+		//  Measured:  `392 + p * (32 ±0)`
+		//  Estimated: `1877 + p * (32 ±0)`
+		// Minimum execution time: 12_656_000 picoseconds.
+		Weight::from_parts(14_032_951, 1877)
+			// Standard Error: 1_025
+			.saturating_add(Weight::from_parts(159_143, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
diff --git a/substrate/frame/contracts/src/weights.rs b/substrate/frame/contracts/src/weights.rs
index 962591290b3..47ca17c7d80 100644
--- a/substrate/frame/contracts/src/weights.rs
+++ b/substrate/frame/contracts/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_contracts`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_contracts
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_contracts
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/contracts/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -141,8 +143,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1627`
-		// Minimum execution time: 1_997_000 picoseconds.
-		Weight::from_parts(2_130_000, 1627)
+		// Minimum execution time: 2_103_000 picoseconds.
+		Weight::from_parts(2_260_000, 1627)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -152,10 +154,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `452 + k * (69 ±0)`
 		//  Estimated: `442 + k * (70 ±0)`
-		// Minimum execution time: 12_276_000 picoseconds.
-		Weight::from_parts(1_593_881, 442)
-			// Standard Error: 1_135
-			.saturating_add(Weight::from_parts(1_109_302, 0).saturating_mul(k.into()))
+		// Minimum execution time: 12_173_000 picoseconds.
+		Weight::from_parts(12_515_000, 442)
+			// Standard Error: 1_033
+			.saturating_add(Weight::from_parts(1_075_765, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
@@ -169,8 +171,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `211 + c * (1 ±0)`
 		//  Estimated: `6149 + c * (1 ±0)`
-		// Minimum execution time: 8_176_000 picoseconds.
-		Weight::from_parts(8_555_388, 6149)
+		// Minimum execution time: 8_054_000 picoseconds.
+		Weight::from_parts(8_503_485, 6149)
 			// Standard Error: 1
 			.saturating_add(Weight::from_parts(1_184, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
@@ -185,8 +187,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `510`
 		//  Estimated: `6450`
-		// Minimum execution time: 16_270_000 picoseconds.
-		Weight::from_parts(16_779_000, 6450)
+		// Minimum execution time: 16_966_000 picoseconds.
+		Weight::from_parts(17_445_000, 6450)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -199,10 +201,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `171 + k * (1 ±0)`
 		//  Estimated: `3635 + k * (1 ±0)`
-		// Minimum execution time: 3_572_000 picoseconds.
-		Weight::from_parts(1_950_905, 3635)
-			// Standard Error: 1_597
-			.saturating_add(Weight::from_parts(1_123_190, 0).saturating_mul(k.into()))
+		// Minimum execution time: 3_643_000 picoseconds.
+		Weight::from_parts(3_714_000, 3635)
+			// Standard Error: 1_056
+			.saturating_add(Weight::from_parts(1_089_042, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -212,6 +214,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553053f13fd319a03c211337c76e0fe776df` (r:2 w:0)
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553022fca90611ba8b7942f8bdb3b97f6580` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553022fca90611ba8b7942f8bdb3b97f6580` (r:1 w:1)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:0 w:1)
@@ -219,13 +223,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `c` is `[0, 125952]`.
 	fn v12_migration_step(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `325 + c * (1 ±0)`
-		//  Estimated: `6263 + c * (1 ±0)`
-		// Minimum execution time: 16_873_000 picoseconds.
-		Weight::from_parts(16_790_402, 6263)
+		//  Measured:  `328 + c * (1 ±0)`
+		//  Estimated: `6266 + c * (1 ±0)`
+		// Minimum execution time: 19_891_000 picoseconds.
+		Weight::from_parts(19_961_608, 6266)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(396, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(Weight::from_parts(429, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into()))
 	}
@@ -235,8 +239,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `440`
 		//  Estimated: `6380`
-		// Minimum execution time: 11_904_000 picoseconds.
-		Weight::from_parts(12_785_000, 6380)
+		// Minimum execution time: 12_483_000 picoseconds.
+		Weight::from_parts(13_205_000, 6380)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -245,13 +249,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	fn v14_migration_step() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `352`
 		//  Estimated: `6292`
-		// Minimum execution time: 44_920_000 picoseconds.
-		Weight::from_parts(46_163_000, 6292)
+		// Minimum execution time: 42_443_000 picoseconds.
+		Weight::from_parts(43_420_000, 6292)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -263,8 +267,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `594`
 		//  Estimated: `6534`
-		// Minimum execution time: 53_864_000 picoseconds.
-		Weight::from_parts(55_139_000, 6534)
+		// Minimum execution time: 52_282_000 picoseconds.
+		Weight::from_parts(54_110_000, 6534)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -274,8 +278,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1627`
-		// Minimum execution time: 2_375_000 picoseconds.
-		Weight::from_parts(2_487_000, 1627)
+		// Minimum execution time: 2_539_000 picoseconds.
+		Weight::from_parts(2_644_000, 1627)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -287,8 +291,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `166`
 		//  Estimated: `3631`
-		// Minimum execution time: 11_580_000 picoseconds.
-		Weight::from_parts(11_980_000, 3631)
+		// Minimum execution time: 9_473_000 picoseconds.
+		Weight::from_parts(9_907_000, 3631)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -298,8 +302,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3607`
-		// Minimum execution time: 4_557_000 picoseconds.
-		Weight::from_parts(4_807_000, 3607)
+		// Minimum execution time: 3_532_000 picoseconds.
+		Weight::from_parts(3_768_000, 3607)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0)
@@ -310,8 +314,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `167`
 		//  Estimated: `3632`
-		// Minimum execution time: 6_253_000 picoseconds.
-		Weight::from_parts(6_479_000, 3632)
+		// Minimum execution time: 5_036_000 picoseconds.
+		Weight::from_parts(5_208_000, 3632)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0)
@@ -322,13 +326,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3607`
-		// Minimum execution time: 6_166_000 picoseconds.
-		Weight::from_parts(6_545_000, 3607)
+		// Minimum execution time: 4_881_000 picoseconds.
+		Weight::from_parts(5_149_000, 3607)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -344,22 +350,24 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `c` is `[0, 125952]`.
 	fn call_with_code_per_byte(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `801 + c * (1 ±0)`
-		//  Estimated: `6739 + c * (1 ±0)`
-		// Minimum execution time: 282_232_000 picoseconds.
-		Weight::from_parts(266_148_573, 6739)
-			// Standard Error: 69
-			.saturating_add(Weight::from_parts(34_592, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `804 + c * (1 ±0)`
+		//  Estimated: `9217 + c * (1 ±0)`
+		// Minimum execution time: 280_047_000 picoseconds.
+		Weight::from_parts(270_065_882, 9217)
+			// Standard Error: 86
+			.saturating_add(Weight::from_parts(34_361, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:2 w:2)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:3 w:3)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::Nonce` (r:1 w:1)
@@ -377,17 +385,17 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `s` is `[0, 1048576]`.
 	fn instantiate_with_code(c: u32, i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `323`
-		//  Estimated: `8737`
-		// Minimum execution time: 3_760_879_000 picoseconds.
-		Weight::from_parts(794_812_431, 8737)
+		//  Measured:  `326`
+		//  Estimated: `8740`
+		// Minimum execution time: 3_776_071_000 picoseconds.
+		Weight::from_parts(706_212_213, 8740)
 			// Standard Error: 149
-			.saturating_add(Weight::from_parts(101_881, 0).saturating_mul(c.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_404, 0).saturating_mul(i.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_544, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(11_u64))
+			.saturating_add(Weight::from_parts(98_798, 0).saturating_mul(c.into()))
+			// Standard Error: 17
+			.saturating_add(Weight::from_parts(1_560, 0).saturating_mul(i.into()))
+			// Standard Error: 17
+			.saturating_add(Weight::from_parts(1_476, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(14_u64))
 			.saturating_add(T::DbWeight::get().writes(10_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
@@ -396,6 +404,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:1 w:0)
 	/// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::Nonce` (r:1 w:1)
 	/// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
@@ -407,24 +417,26 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `System::EventTopics` (r:2 w:2)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `i` is `[0, 1048576]`.
 	/// The range of component `s` is `[0, 1048576]`.
 	fn instantiate(i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `560`
-		//  Estimated: `6504`
-		// Minimum execution time: 1_953_162_000 picoseconds.
-		Weight::from_parts(374_252_840, 6504)
+		//  Measured:  `563`
+		//  Estimated: `8982`
+		// Minimum execution time: 1_966_301_000 picoseconds.
+		Weight::from_parts(376_287_434, 8982)
 			// Standard Error: 7
-			.saturating_add(Weight::from_parts(1_630, 0).saturating_mul(i.into()))
+			.saturating_add(Weight::from_parts(1_643, 0).saturating_mul(i.into()))
 			// Standard Error: 7
-			.saturating_add(Weight::from_parts(1_650, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(10_u64))
+			.saturating_add(Weight::from_parts(1_667, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(13_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -439,19 +451,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `826`
-		//  Estimated: `6766`
-		// Minimum execution time: 187_899_000 picoseconds.
-		Weight::from_parts(195_510_000, 6766)
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `829`
+		//  Estimated: `9244`
+		// Minimum execution time: 197_571_000 picoseconds.
+		Weight::from_parts(206_612_000, 9244)
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:1 w:1)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:0 w:1)
@@ -459,13 +473,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `c` is `[0, 125952]`.
 	fn upload_code(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `142`
-		//  Estimated: `3607`
-		// Minimum execution time: 254_800_000 picoseconds.
-		Weight::from_parts(285_603_050, 3607)
-			// Standard Error: 62
-			.saturating_add(Weight::from_parts(66_212, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(4_u64))
+		//  Measured:  `145`
+		//  Estimated: `6085`
+		// Minimum execution time: 266_006_000 picoseconds.
+		Weight::from_parts(287_700_788, 6085)
+			// Standard Error: 67
+			.saturating_add(Weight::from_parts(63_196, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
@@ -473,7 +487,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:1 w:1)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:0 w:1)
@@ -482,8 +496,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `315`
 		//  Estimated: `3780`
-		// Minimum execution time: 43_553_000 picoseconds.
-		Weight::from_parts(45_036_000, 3780)
+		// Minimum execution time: 42_714_000 picoseconds.
+		Weight::from_parts(44_713_000, 3780)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -499,8 +513,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `552`
 		//  Estimated: `8967`
-		// Minimum execution time: 33_223_000 picoseconds.
-		Weight::from_parts(34_385_000, 8967)
+		// Minimum execution time: 33_516_000 picoseconds.
+		Weight::from_parts(34_823_000, 8967)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
@@ -508,6 +522,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -521,13 +537,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `866 + r * (6 ±0)`
-		//  Estimated: `6806 + r * (6 ±0)`
-		// Minimum execution time: 254_213_000 picoseconds.
-		Weight::from_parts(273_464_980, 6806)
-			// Standard Error: 1_362
-			.saturating_add(Weight::from_parts(322_619, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `869 + r * (6 ±0)`
+		//  Estimated: `9284 + r * (6 ±0)`
+		// Minimum execution time: 246_563_000 picoseconds.
+		Weight::from_parts(274_999_814, 9284)
+			// Standard Error: 628
+			.saturating_add(Weight::from_parts(347_395, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -535,6 +551,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1601 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -548,13 +566,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_is_contract(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `922 + r * (209 ±0)`
-		//  Estimated: `6826 + r * (2684 ±0)`
-		// Minimum execution time: 250_273_000 picoseconds.
-		Weight::from_parts(122_072_782, 6826)
-			// Standard Error: 5_629
-			.saturating_add(Weight::from_parts(3_490_256, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `925 + r * (209 ±0)`
+		//  Estimated: `9304 + r * (2684 ±0)`
+		// Minimum execution time: 252_236_000 picoseconds.
+		Weight::from_parts(121_390_081, 9304)
+			// Standard Error: 6_206
+			.saturating_add(Weight::from_parts(3_558_718, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 2684).saturating_mul(r.into()))
@@ -563,6 +581,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1601 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -576,13 +596,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (213 ±0)`
-		//  Estimated: `6830 + r * (2688 ±0)`
-		// Minimum execution time: 255_187_000 picoseconds.
-		Weight::from_parts(118_082_505, 6830)
-			// Standard Error: 6_302
-			.saturating_add(Weight::from_parts(4_246_968, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (213 ±0)`
+		//  Estimated: `9308 + r * (2688 ±0)`
+		// Minimum execution time: 269_427_000 picoseconds.
+		Weight::from_parts(134_879_389, 9308)
+			// Standard Error: 6_711
+			.saturating_add(Weight::from_parts(4_408_658, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 2688).saturating_mul(r.into()))
@@ -591,6 +611,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -604,13 +626,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_own_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `873 + r * (6 ±0)`
-		//  Estimated: `6815 + r * (6 ±0)`
-		// Minimum execution time: 256_833_000 picoseconds.
-		Weight::from_parts(273_330_216, 6815)
-			// Standard Error: 881
-			.saturating_add(Weight::from_parts(400_105, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `876 + r * (6 ±0)`
+		//  Estimated: `9293 + r * (6 ±0)`
+		// Minimum execution time: 249_382_000 picoseconds.
+		Weight::from_parts(266_305_110, 9293)
+			// Standard Error: 1_592
+			.saturating_add(Weight::from_parts(460_001, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -618,6 +640,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -631,18 +655,20 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller_is_origin(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (3 ±0)`
-		//  Estimated: `6804 + r * (3 ±0)`
-		// Minimum execution time: 244_193_000 picoseconds.
-		Weight::from_parts(271_221_908, 6804)
-			// Standard Error: 442
-			.saturating_add(Weight::from_parts(176_480, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (3 ±0)`
+		//  Estimated: `9282 + r * (3 ±0)`
+		// Minimum execution time: 252_145_000 picoseconds.
+		Weight::from_parts(277_211_668, 9282)
+			// Standard Error: 371
+			.saturating_add(Weight::from_parts(174_394, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -656,13 +682,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller_is_root(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `753 + r * (3 ±0)`
-		//  Estimated: `6693 + r * (3 ±0)`
-		// Minimum execution time: 232_603_000 picoseconds.
-		Weight::from_parts(260_577_368, 6693)
-			// Standard Error: 365
-			.saturating_add(Weight::from_parts(158_126, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(7_u64))
+		//  Measured:  `756 + r * (3 ±0)`
+		//  Estimated: `9171 + r * (3 ±0)`
+		// Minimum execution time: 251_595_000 picoseconds.
+		Weight::from_parts(268_102_575, 9171)
+			// Standard Error: 334
+			.saturating_add(Weight::from_parts(154_836, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(10_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -670,6 +696,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -683,13 +711,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_address(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `867 + r * (6 ±0)`
-		//  Estimated: `6807 + r * (6 ±0)`
-		// Minimum execution time: 247_564_000 picoseconds.
-		Weight::from_parts(275_108_914, 6807)
-			// Standard Error: 505
-			.saturating_add(Weight::from_parts(315_065, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `870 + r * (6 ±0)`
+		//  Estimated: `9285 + r * (6 ±0)`
+		// Minimum execution time: 251_404_000 picoseconds.
+		Weight::from_parts(278_747_574, 9285)
+			// Standard Error: 782
+			.saturating_add(Weight::from_parts(341_598, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -697,6 +725,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -710,13 +740,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_gas_left(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (6 ±0)`
-		//  Estimated: `6806 + r * (6 ±0)`
-		// Minimum execution time: 258_799_000 picoseconds.
-		Weight::from_parts(274_338_256, 6806)
-			// Standard Error: 632
-			.saturating_add(Weight::from_parts(355_032, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (6 ±0)`
+		//  Estimated: `9284 + r * (6 ±0)`
+		// Minimum execution time: 255_649_000 picoseconds.
+		Weight::from_parts(276_509_641, 9284)
+			// Standard Error: 1_262
+			.saturating_add(Weight::from_parts(380_225, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -724,6 +754,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:2 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -737,13 +769,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_balance(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1007 + r * (6 ±0)`
-		//  Estimated: `6931 + r * (6 ±0)`
-		// Minimum execution time: 253_335_000 picoseconds.
-		Weight::from_parts(273_013_859, 6931)
-			// Standard Error: 2_007
-			.saturating_add(Weight::from_parts(1_540_735, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1010 + r * (6 ±0)`
+		//  Estimated: `9409 + r * (6 ±0)`
+		// Minimum execution time: 267_143_000 picoseconds.
+		Weight::from_parts(298_166_116, 9409)
+			// Standard Error: 3_765
+			.saturating_add(Weight::from_parts(1_620_886, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -751,6 +783,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -764,13 +798,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_value_transferred(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `877 + r * (6 ±0)`
-		//  Estimated: `6823 + r * (6 ±0)`
-		// Minimum execution time: 252_325_000 picoseconds.
-		Weight::from_parts(274_733_944, 6823)
-			// Standard Error: 603
-			.saturating_add(Weight::from_parts(314_467, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `880 + r * (6 ±0)`
+		//  Estimated: `9301 + r * (6 ±0)`
+		// Minimum execution time: 250_013_000 picoseconds.
+		Weight::from_parts(281_469_583, 9301)
+			// Standard Error: 730
+			.saturating_add(Weight::from_parts(339_260, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -778,6 +812,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -791,13 +827,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_minimum_balance(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `875 + r * (6 ±0)`
-		//  Estimated: `6816 + r * (6 ±0)`
-		// Minimum execution time: 250_698_000 picoseconds.
-		Weight::from_parts(271_707_578, 6816)
-			// Standard Error: 952
-			.saturating_add(Weight::from_parts(318_412, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `878 + r * (6 ±0)`
+		//  Estimated: `9294 + r * (6 ±0)`
+		// Minimum execution time: 256_219_000 picoseconds.
+		Weight::from_parts(275_309_266, 9294)
+			// Standard Error: 1_199
+			.saturating_add(Weight::from_parts(350_824, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -805,6 +841,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -818,13 +856,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_block_number(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872 + r * (6 ±0)`
-		//  Estimated: `6819 + r * (6 ±0)`
-		// Minimum execution time: 251_854_000 picoseconds.
-		Weight::from_parts(272_002_212, 6819)
-			// Standard Error: 622
-			.saturating_add(Weight::from_parts(313_353, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `875 + r * (6 ±0)`
+		//  Estimated: `9297 + r * (6 ±0)`
+		// Minimum execution time: 264_644_000 picoseconds.
+		Weight::from_parts(283_856_744, 9297)
+			// Standard Error: 623
+			.saturating_add(Weight::from_parts(334_175, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -832,6 +870,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -845,13 +885,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_now(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (6 ±0)`
-		//  Estimated: `6804 + r * (6 ±0)`
-		// Minimum execution time: 252_010_000 picoseconds.
-		Weight::from_parts(270_387_000, 6804)
-			// Standard Error: 659
-			.saturating_add(Weight::from_parts(325_856, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (6 ±0)`
+		//  Estimated: `9282 + r * (6 ±0)`
+		// Minimum execution time: 263_364_000 picoseconds.
+		Weight::from_parts(281_379_508, 9282)
+			// Standard Error: 639
+			.saturating_add(Weight::from_parts(338_021, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -859,6 +899,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -874,13 +916,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_weight_to_fee(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `937 + r * (14 ±0)`
-		//  Estimated: `6872 + r * (14 ±0)`
-		// Minimum execution time: 247_933_000 picoseconds.
-		Weight::from_parts(281_550_162, 6872)
-			// Standard Error: 660
-			.saturating_add(Weight::from_parts(1_090_869, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `940 + r * (14 ±0)`
+		//  Estimated: `9350 + r * (14 ±0)`
+		// Minimum execution time: 269_667_000 picoseconds.
+		Weight::from_parts(284_662_802, 9350)
+			// Standard Error: 691
+			.saturating_add(Weight::from_parts(799_249, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into()))
 	}
@@ -888,6 +930,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -901,13 +945,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_input(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `865 + r * (6 ±0)`
-		//  Estimated: `6807 + r * (6 ±0)`
-		// Minimum execution time: 251_158_000 picoseconds.
-		Weight::from_parts(274_623_152, 6807)
-			// Standard Error: 491
-			.saturating_add(Weight::from_parts(263_916, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `868 + r * (6 ±0)`
+		//  Estimated: `9285 + r * (6 ±0)`
+		// Minimum execution time: 267_018_000 picoseconds.
+		Weight::from_parts(281_842_630, 9285)
+			// Standard Error: 453
+			.saturating_add(Weight::from_parts(255_373, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -915,6 +959,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -928,19 +974,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_input_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `869`
-		//  Estimated: `6809`
-		// Minimum execution time: 263_205_000 picoseconds.
-		Weight::from_parts(216_792_893, 6809)
+		//  Measured:  `872`
+		//  Estimated: `9287`
+		// Minimum execution time: 258_208_000 picoseconds.
+		Weight::from_parts(227_686_792, 9287)
 			// Standard Error: 23
 			.saturating_add(Weight::from_parts(989, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -954,11 +1002,11 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1]`.
 	fn seal_return(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `853 + r * (45 ±0)`
-		//  Estimated: `6793 + r * (45 ±0)`
-		// Minimum execution time: 239_663_000 picoseconds.
-		Weight::from_parts(266_124_565, 6793)
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `856 + r * (45 ±0)`
+		//  Estimated: `9271 + r * (45 ±0)`
+		// Minimum execution time: 245_714_000 picoseconds.
+		Weight::from_parts(272_527_059, 9271)
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into()))
 	}
@@ -966,6 +1014,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -979,19 +1029,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_return_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863`
-		//  Estimated: `6810`
-		// Minimum execution time: 241_763_000 picoseconds.
-		Weight::from_parts(266_535_552, 6810)
+		//  Measured:  `866`
+		//  Estimated: `9288`
+		// Minimum execution time: 256_060_000 picoseconds.
+		Weight::from_parts(276_710_811, 9288)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(320, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(312, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:3)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:1 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:2)
@@ -1005,28 +1057,30 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `System::EventTopics` (r:4 w:4)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `Contracts::DeletionQueue` (r:0 w:1)
 	/// Proof: `Contracts::DeletionQueue` (`max_values`: None, `max_size`: Some(142), added: 2617, mode: `Measured`)
 	/// The range of component `r` is `[0, 1]`.
 	fn seal_terminate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2972 + r * (316 ±0)`
-		//  Estimated: `8912 + r * (5266 ±0)`
-		// Minimum execution time: 265_888_000 picoseconds.
-		Weight::from_parts(291_232_232, 8912)
-			// Standard Error: 845_475
-			.saturating_add(Weight::from_parts(104_398_867, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
-			.saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(r.into())))
+		//  Measured:  `2902 + r * (529 ±0)`
+		//  Estimated: `11317 + r * (5479 ±0)`
+		// Minimum execution time: 270_479_000 picoseconds.
+		Weight::from_parts(296_706_989, 11317)
+			// Standard Error: 813_407
+			.saturating_add(Weight::from_parts(109_236_910, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
+			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((10_u64).saturating_mul(r.into())))
-			.saturating_add(Weight::from_parts(0, 5266).saturating_mul(r.into()))
+			.saturating_add(Weight::from_parts(0, 5479).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1042,13 +1096,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_random(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `944 + r * (10 ±0)`
-		//  Estimated: `6885 + r * (10 ±0)`
-		// Minimum execution time: 248_500_000 picoseconds.
-		Weight::from_parts(282_353_053, 6885)
-			// Standard Error: 1_144
-			.saturating_add(Weight::from_parts(1_193_841, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `947 + r * (10 ±0)`
+		//  Estimated: `9363 + r * (10 ±0)`
+		// Minimum execution time: 251_787_000 picoseconds.
+		Weight::from_parts(284_036_313, 9363)
+			// Standard Error: 2_560
+			.saturating_add(Weight::from_parts(1_238_301, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into()))
 	}
@@ -1056,6 +1110,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1069,13 +1125,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_deposit_event(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (10 ±0)`
-		//  Estimated: `6805 + r * (10 ±0)`
-		// Minimum execution time: 248_130_000 picoseconds.
-		Weight::from_parts(279_583_178, 6805)
-			// Standard Error: 971
-			.saturating_add(Weight::from_parts(1_987_941, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (10 ±0)`
+		//  Estimated: `9283 + r * (10 ±0)`
+		// Minimum execution time: 250_566_000 picoseconds.
+		Weight::from_parts(275_402_784, 9283)
+			// Standard Error: 3_939
+			.saturating_add(Weight::from_parts(1_941_995, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into()))
 	}
@@ -1083,6 +1139,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1097,15 +1155,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_deposit_event_per_topic_and_byte(t: u32, n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `880 + t * (32 ±0)`
-		//  Estimated: `6825 + t * (2508 ±0)`
-		// Minimum execution time: 258_594_000 picoseconds.
-		Weight::from_parts(276_734_422, 6825)
-			// Standard Error: 102_093
-			.saturating_add(Weight::from_parts(2_559_383, 0).saturating_mul(t.into()))
+		//  Measured:  `883 + t * (32 ±0)`
+		//  Estimated: `9303 + t * (2508 ±0)`
+		// Minimum execution time: 267_544_000 picoseconds.
+		Weight::from_parts(280_117_825, 9303)
+			// Standard Error: 102_111
+			.saturating_add(Weight::from_parts(3_253_038, 0).saturating_mul(t.into()))
 			// Standard Error: 28
-			.saturating_add(Weight::from_parts(501, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(668, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into())))
@@ -1115,6 +1173,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1128,13 +1188,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_debug_message(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `862 + r * (7 ±0)`
-		//  Estimated: `6807 + r * (7 ±0)`
-		// Minimum execution time: 154_564_000 picoseconds.
-		Weight::from_parts(168_931_365, 6807)
-			// Standard Error: 349
-			.saturating_add(Weight::from_parts(226_848, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `865 + r * (7 ±0)`
+		//  Estimated: `9285 + r * (7 ±0)`
+		// Minimum execution time: 157_769_000 picoseconds.
+		Weight::from_parts(173_026_565, 9285)
+			// Standard Error: 405
+			.saturating_add(Weight::from_parts(219_727, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into()))
 	}
@@ -1142,6 +1202,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1155,13 +1217,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `i` is `[0, 1048576]`.
 	fn seal_debug_message_per_byte(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `125813`
-		//  Estimated: `131755`
-		// Minimum execution time: 394_382_000 picoseconds.
-		Weight::from_parts(376_780_500, 131755)
+		//  Measured:  `125816`
+		//  Estimated: `131758`
+		// Minimum execution time: 403_961_000 picoseconds.
+		Weight::from_parts(376_480_872, 131758)
 			// Standard Error: 12
-			.saturating_add(Weight::from_parts(1_026, 0).saturating_mul(i.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_041, 0).saturating_mul(i.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -1169,13 +1231,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_set_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `924 + r * (292 ±0)`
-		//  Estimated: `926 + r * (293 ±0)`
-		// Minimum execution time: 249_757_000 picoseconds.
-		Weight::from_parts(177_324_374, 926)
-			// Standard Error: 9_512
-			.saturating_add(Weight::from_parts(6_176_717, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `927 + r * (292 ±0)`
+		//  Estimated: `929 + r * (293 ±0)`
+		// Minimum execution time: 256_272_000 picoseconds.
+		Weight::from_parts(181_058_379, 929)
+			// Standard Error: 9_838
+			.saturating_add(Weight::from_parts(6_316_677, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1186,13 +1248,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_set_storage_per_new_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1447`
-		//  Estimated: `1430`
-		// Minimum execution time: 267_564_000 picoseconds.
-		Weight::from_parts(328_701_080, 1430)
-			// Standard Error: 61
-			.saturating_add(Weight::from_parts(576, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(12_u64))
+		//  Measured:  `1450`
+		//  Estimated: `1433`
+		// Minimum execution time: 268_713_000 picoseconds.
+		Weight::from_parts(328_329_131, 1433)
+			// Standard Error: 66
+			.saturating_add(Weight::from_parts(962, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(15_u64))
 			.saturating_add(T::DbWeight::get().writes(8_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -1200,13 +1262,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_set_storage_per_old_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1253 + n * (1 ±0)`
-		//  Estimated: `1253 + n * (1 ±0)`
-		// Minimum execution time: 266_347_000 picoseconds.
-		Weight::from_parts(289_824_718, 1253)
-			// Standard Error: 34
-			.saturating_add(Weight::from_parts(184, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1256 + n * (1 ±0)`
+		//  Estimated: `1256 + n * (1 ±0)`
+		// Minimum execution time: 265_683_000 picoseconds.
+		Weight::from_parts(293_784_477, 1256)
+			// Standard Error: 31
+			.saturating_add(Weight::from_parts(377, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1215,13 +1277,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_clear_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (288 ±0)`
-		//  Estimated: `927 + r * (289 ±0)`
-		// Minimum execution time: 247_207_000 picoseconds.
-		Weight::from_parts(179_856_075, 927)
-			// Standard Error: 9_383
-			.saturating_add(Weight::from_parts(6_053_198, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (288 ±0)`
+		//  Estimated: `930 + r * (289 ±0)`
+		// Minimum execution time: 269_959_000 picoseconds.
+		Weight::from_parts(186_065_911, 930)
+			// Standard Error: 9_679
+			.saturating_add(Weight::from_parts(6_286_855, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1232,13 +1294,11 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_clear_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1249 + n * (1 ±0)`
-		//  Estimated: `1249 + n * (1 ±0)`
-		// Minimum execution time: 262_655_000 picoseconds.
-		Weight::from_parts(289_482_543, 1249)
-			// Standard Error: 35
-			.saturating_add(Weight::from_parts(92, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1252 + n * (1 ±0)`
+		//  Estimated: `1252 + n * (1 ±0)`
+		// Minimum execution time: 265_805_000 picoseconds.
+		Weight::from_parts(294_633_695, 1252)
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1247,13 +1307,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_get_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (296 ±0)`
-		//  Estimated: `923 + r * (297 ±0)`
-		// Minimum execution time: 247_414_000 picoseconds.
-		Weight::from_parts(203_317_182, 923)
-			// Standard Error: 7_191
-			.saturating_add(Weight::from_parts(4_925_154, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (296 ±0)`
+		//  Estimated: `926 + r * (297 ±0)`
+		// Minimum execution time: 264_592_000 picoseconds.
+		Weight::from_parts(204_670_461, 926)
+			// Standard Error: 6_869
+			.saturating_add(Weight::from_parts(5_137_920, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into()))
@@ -1263,13 +1323,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_get_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1265 + n * (1 ±0)`
-		//  Estimated: `1265 + n * (1 ±0)`
-		// Minimum execution time: 258_910_000 picoseconds.
-		Weight::from_parts(283_086_514, 1265)
-			// Standard Error: 39
-			.saturating_add(Weight::from_parts(980, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1268 + n * (1 ±0)`
+		//  Estimated: `1268 + n * (1 ±0)`
+		// Minimum execution time: 273_165_000 picoseconds.
+		Weight::from_parts(297_883_669, 1268)
+			// Standard Error: 37
+			.saturating_add(Weight::from_parts(576, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1278,13 +1338,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_contains_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `932 + r * (288 ±0)`
-		//  Estimated: `929 + r * (289 ±0)`
-		// Minimum execution time: 252_410_000 picoseconds.
-		Weight::from_parts(201_227_879, 929)
-			// Standard Error: 6_899
-			.saturating_add(Weight::from_parts(4_774_983, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `935 + r * (288 ±0)`
+		//  Estimated: `932 + r * (289 ±0)`
+		// Minimum execution time: 252_257_000 picoseconds.
+		Weight::from_parts(205_018_595, 932)
+			// Standard Error: 7_605
+			.saturating_add(Weight::from_parts(4_933_378, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into()))
@@ -1294,13 +1354,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_contains_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1252 + n * (1 ±0)`
-		//  Estimated: `1252 + n * (1 ±0)`
-		// Minimum execution time: 259_053_000 picoseconds.
-		Weight::from_parts(283_392_084, 1252)
-			// Standard Error: 41
-			.saturating_add(Weight::from_parts(213, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1255 + n * (1 ±0)`
+		//  Estimated: `1255 + n * (1 ±0)`
+		// Minimum execution time: 266_839_000 picoseconds.
+		Weight::from_parts(292_064_487, 1255)
+			// Standard Error: 34
+			.saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1309,13 +1369,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_take_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `914 + r * (296 ±0)`
-		//  Estimated: `919 + r * (297 ±0)`
-		// Minimum execution time: 251_371_000 picoseconds.
-		Weight::from_parts(177_119_717, 919)
-			// Standard Error: 9_421
-			.saturating_add(Weight::from_parts(6_226_005, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `917 + r * (296 ±0)`
+		//  Estimated: `922 + r * (297 ±0)`
+		// Minimum execution time: 266_072_000 picoseconds.
+		Weight::from_parts(189_018_352, 922)
+			// Standard Error: 9_530
+			.saturating_add(Weight::from_parts(6_481_011, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1326,13 +1386,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_take_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1266 + n * (1 ±0)`
-		//  Estimated: `1266 + n * (1 ±0)`
-		// Minimum execution time: 263_350_000 picoseconds.
-		Weight::from_parts(284_323_917, 1266)
-			// Standard Error: 31
-			.saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1269 + n * (1 ±0)`
+		//  Estimated: `1269 + n * (1 ±0)`
+		// Minimum execution time: 270_703_000 picoseconds.
+		Weight::from_parts(292_867_105, 1269)
+			// Standard Error: 30
+			.saturating_add(Weight::from_parts(800, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1340,6 +1400,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1602 w:1601)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1353,13 +1415,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_transfer(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1415 + r * (45 ±0)`
-		//  Estimated: `7307 + r * (2520 ±0)`
-		// Minimum execution time: 248_701_000 picoseconds.
-		Weight::from_parts(17_811_969, 7307)
-			// Standard Error: 35_154
-			.saturating_add(Weight::from_parts(31_809_738, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `1418 + r * (45 ±0)`
+		//  Estimated: `9785 + r * (2520 ±0)`
+		// Minimum execution time: 251_843_000 picoseconds.
+		Weight::from_parts(181_026_888, 9785)
+			// Standard Error: 38_221
+			.saturating_add(Weight::from_parts(30_626_681, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1369,6 +1431,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:801 w:801)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:0)
@@ -1382,13 +1446,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_call(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1260 + r * (245 ±0)`
-		//  Estimated: `9440 + r * (2721 ±0)`
-		// Minimum execution time: 247_335_000 picoseconds.
-		Weight::from_parts(264_025_000, 9440)
-			// Standard Error: 121_299
-			.saturating_add(Weight::from_parts(234_770_827, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(11_u64))
+		//  Measured:  `1263 + r * (245 ±0)`
+		//  Estimated: `9635 + r * (2721 ±0)`
+		// Minimum execution time: 254_881_000 picoseconds.
+		Weight::from_parts(272_871_000, 9635)
+			// Standard Error: 94_527
+			.saturating_add(Weight::from_parts(233_379_497, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(14_u64))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into())))
@@ -1398,6 +1462,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:736 w:0)
@@ -1412,12 +1478,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	fn seal_delegate_call(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + r * (576 ±0)`
-		//  Estimated: `6812 + r * (2637 ±3)`
-		// Minimum execution time: 261_011_000 picoseconds.
-		Weight::from_parts(264_554_000, 6812)
-			// Standard Error: 104_415
-			.saturating_add(Weight::from_parts(231_627_084, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Estimated: `9290 + r * (2637 ±3)`
+		// Minimum execution time: 266_704_000 picoseconds.
+		Weight::from_parts(273_165_000, 9290)
+			// Standard Error: 141_486
+			.saturating_add(Weight::from_parts(232_947_049, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1427,6 +1493,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:2)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:2 w:2)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:0)
@@ -1441,15 +1509,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `c` is `[0, 1048576]`.
 	fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1307 + t * (277 ±0)`
-		//  Estimated: `12197 + t * (5227 ±0)`
-		// Minimum execution time: 445_561_000 picoseconds.
-		Weight::from_parts(62_287_490, 12197)
-			// Standard Error: 11_797_697
-			.saturating_add(Weight::from_parts(357_530_529, 0).saturating_mul(t.into()))
+		//  Measured:  `1310 + t * (277 ±0)`
+		//  Estimated: `12200 + t * (5227 ±0)`
+		// Minimum execution time: 446_451_000 picoseconds.
+		Weight::from_parts(68_175_222, 12200)
+			// Standard Error: 11_619_250
+			.saturating_add(Weight::from_parts(354_237_260, 0).saturating_mul(t.into()))
 			// Standard Error: 17
-			.saturating_add(Weight::from_parts(970, 0).saturating_mul(c.into()))
-			.saturating_add(T::DbWeight::get().reads(13_u64))
+			.saturating_add(Weight::from_parts(987, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(16_u64))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(t.into())))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(t.into())))
@@ -1459,6 +1527,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:802 w:802)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:801 w:801)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:801 w:800)
@@ -1472,17 +1542,17 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `System::EventTopics` (r:803 w:803)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:800 w:800)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `r` is `[1, 800]`.
 	fn seal_instantiate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1278 + r * (255 ±0)`
-		//  Estimated: `9620 + r * (2731 ±0)`
-		// Minimum execution time: 621_897_000 picoseconds.
-		Weight::from_parts(631_687_000, 9620)
-			// Standard Error: 215_241
-			.saturating_add(Weight::from_parts(350_527_831, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(11_u64))
+		//  Measured:  `1281 + r * (255 ±0)`
+		//  Estimated: `9623 + r * (2731 ±0)`
+		// Minimum execution time: 628_156_000 picoseconds.
+		Weight::from_parts(642_052_000, 9623)
+			// Standard Error: 223_957
+			.saturating_add(Weight::from_parts(348_660_264, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(14_u64))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(r.into())))
@@ -1492,6 +1562,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:3)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:2 w:2)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:1)
@@ -1505,23 +1577,23 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `System::EventTopics` (r:4 w:4)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `t` is `[0, 1]`.
 	/// The range of component `i` is `[0, 983040]`.
 	/// The range of component `s` is `[0, 983040]`.
 	fn seal_instantiate_per_transfer_input_salt_byte(t: u32, i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1303 + t * (104 ±0)`
-		//  Estimated: `12211 + t * (2549 ±1)`
-		// Minimum execution time: 2_181_184_000 picoseconds.
-		Weight::from_parts(1_194_190_111, 12211)
-			// Standard Error: 11_578_766
-			.saturating_add(Weight::from_parts(6_361_884, 0).saturating_mul(t.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_025, 0).saturating_mul(i.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_158, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(16_u64))
+		//  Measured:  `1306 + t * (104 ±0)`
+		//  Estimated: `12214 + t * (2549 ±1)`
+		// Minimum execution time: 2_106_379_000 picoseconds.
+		Weight::from_parts(1_098_227_098, 12214)
+			// Standard Error: 12_549_729
+			.saturating_add(Weight::from_parts(21_628_382, 0).saturating_mul(t.into()))
+			// Standard Error: 19
+			.saturating_add(Weight::from_parts(1_059, 0).saturating_mul(i.into()))
+			// Standard Error: 19
+			.saturating_add(Weight::from_parts(1_220, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(19_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into())))
 			.saturating_add(T::DbWeight::get().writes(11_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into())))
@@ -1531,6 +1603,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1544,13 +1618,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_sha2_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `862 + r * (8 ±0)`
-		//  Estimated: `6801 + r * (8 ±0)`
-		// Minimum execution time: 241_609_000 picoseconds.
-		Weight::from_parts(268_716_874, 6801)
-			// Standard Error: 617
-			.saturating_add(Weight::from_parts(377_753, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `865 + r * (8 ±0)`
+		//  Estimated: `9279 + r * (8 ±0)`
+		// Minimum execution time: 257_102_000 picoseconds.
+		Weight::from_parts(278_920_692, 9279)
+			// Standard Error: 464
+			.saturating_add(Weight::from_parts(374_120, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -1558,6 +1632,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1571,19 +1647,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_sha2_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `870`
-		//  Estimated: `6808`
-		// Minimum execution time: 261_296_000 picoseconds.
-		Weight::from_parts(255_531_654, 6808)
+		//  Measured:  `873`
+		//  Estimated: `9286`
+		// Minimum execution time: 266_609_000 picoseconds.
+		Weight::from_parts(263_034_132, 9286)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_081, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_082, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1597,13 +1675,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_keccak_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6806 + r * (8 ±0)`
-		// Minimum execution time: 243_583_000 picoseconds.
-		Weight::from_parts(270_025_058, 6806)
-			// Standard Error: 560
-			.saturating_add(Weight::from_parts(767_519, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9284 + r * (8 ±0)`
+		// Minimum execution time: 246_275_000 picoseconds.
+		Weight::from_parts(279_091_594, 9284)
+			// Standard Error: 887
+			.saturating_add(Weight::from_parts(810_394, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -1611,6 +1689,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1624,19 +1704,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_keccak_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6814`
-		// Minimum execution time: 253_798_000 picoseconds.
-		Weight::from_parts(265_542_351, 6814)
+		//  Measured:  `875`
+		//  Estimated: `9292`
+		// Minimum execution time: 249_254_000 picoseconds.
+		Weight::from_parts(270_833_823, 9292)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(3_343, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(3_347, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1650,13 +1732,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_blake2_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6808 + r * (8 ±0)`
-		// Minimum execution time: 247_332_000 picoseconds.
-		Weight::from_parts(269_183_656, 6808)
-			// Standard Error: 665
-			.saturating_add(Weight::from_parts(443_386, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9286 + r * (8 ±0)`
+		// Minimum execution time: 259_131_000 picoseconds.
+		Weight::from_parts(272_665_020, 9286)
+			// Standard Error: 862
+			.saturating_add(Weight::from_parts(451_247, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -1664,6 +1746,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1677,19 +1761,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_blake2_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6813`
-		// Minimum execution time: 250_855_000 picoseconds.
-		Weight::from_parts(258_752_975, 6813)
+		//  Measured:  `875`
+		//  Estimated: `9291`
+		// Minimum execution time: 276_465_000 picoseconds.
+		Weight::from_parts(269_450_297, 9291)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_202, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_190, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1703,13 +1789,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_blake2_128(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6805 + r * (8 ±0)`
-		// Minimum execution time: 240_733_000 picoseconds.
-		Weight::from_parts(269_134_358, 6805)
-			// Standard Error: 512
-			.saturating_add(Weight::from_parts(440_043, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9283 + r * (8 ±0)`
+		// Minimum execution time: 248_349_000 picoseconds.
+		Weight::from_parts(273_660_686, 9283)
+			// Standard Error: 656
+			.saturating_add(Weight::from_parts(444_293, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -1717,6 +1803,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1730,19 +1818,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_blake2_128_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6811`
-		// Minimum execution time: 247_377_000 picoseconds.
-		Weight::from_parts(261_077_322, 6811)
-			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_195, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `875`
+		//  Estimated: `9289`
+		// Minimum execution time: 252_107_000 picoseconds.
+		Weight::from_parts(267_427_726, 9289)
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_199, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1756,13 +1846,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 125697]`.
 	fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `997 + n * (1 ±0)`
-		//  Estimated: `6934 + n * (1 ±0)`
-		// Minimum execution time: 307_337_000 picoseconds.
-		Weight::from_parts(326_710_473, 6934)
-			// Standard Error: 9
-			.saturating_add(Weight::from_parts(5_765, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `1000 + n * (1 ±0)`
+		//  Estimated: `9412 + n * (1 ±0)`
+		// Minimum execution time: 311_252_000 picoseconds.
+		Weight::from_parts(333_250_773, 9412)
+			// Standard Error: 12
+			.saturating_add(Weight::from_parts(5_668, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -1770,6 +1860,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1783,13 +1875,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_sr25519_verify(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `805 + r * (112 ±0)`
-		//  Estimated: `6748 + r * (112 ±0)`
-		// Minimum execution time: 245_432_000 picoseconds.
-		Weight::from_parts(294_206_377, 6748)
-			// Standard Error: 7_229
-			.saturating_add(Weight::from_parts(41_480_485, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `810 + r * (112 ±0)`
+		//  Estimated: `9226 + r * (112 ±0)`
+		// Minimum execution time: 267_431_000 picoseconds.
+		Weight::from_parts(300_733_048, 9226)
+			// Standard Error: 8_806
+			.saturating_add(Weight::from_parts(42_169_197, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into()))
 	}
@@ -1797,6 +1889,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1810,13 +1904,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_ecdsa_recover(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `907 + r * (76 ±0)`
-		//  Estimated: `6802 + r * (77 ±0)`
-		// Minimum execution time: 247_788_000 picoseconds.
-		Weight::from_parts(303_940_062, 6802)
-			// Standard Error: 10_671
-			.saturating_add(Weight::from_parts(45_730_772, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `910 + r * (76 ±0)`
+		//  Estimated: `9279 + r * (77 ±0)`
+		// Minimum execution time: 265_905_000 picoseconds.
+		Weight::from_parts(305_381_951, 9279)
+			// Standard Error: 9_863
+			.saturating_add(Weight::from_parts(45_771_182, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into()))
 	}
@@ -1824,6 +1918,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1837,13 +1933,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_ecdsa_to_eth_address(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `877 + r * (42 ±0)`
-		//  Estimated: `6816 + r * (42 ±0)`
-		// Minimum execution time: 248_825_000 picoseconds.
-		Weight::from_parts(286_832_225, 6816)
-			// Standard Error: 5_274
-			.saturating_add(Weight::from_parts(11_889_262, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `880 + r * (42 ±0)`
+		//  Estimated: `9294 + r * (42 ±0)`
+		// Minimum execution time: 266_701_000 picoseconds.
+		Weight::from_parts(292_407_888, 9294)
+			// Standard Error: 5_394
+			.saturating_add(Weight::from_parts(11_896_065, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into()))
 	}
@@ -1851,6 +1947,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1536 w:1536)
@@ -1865,12 +1963,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	fn seal_set_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + r * (965 ±0)`
-		//  Estimated: `6807 + r * (3090 ±7)`
-		// Minimum execution time: 244_982_000 picoseconds.
-		Weight::from_parts(265_297_000, 6807)
-			// Standard Error: 39_895
-			.saturating_add(Weight::from_parts(22_435_888, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Estimated: `9285 + r * (3090 ±7)`
+		// Minimum execution time: 268_755_000 picoseconds.
+		Weight::from_parts(272_300_000, 9285)
+			// Standard Error: 43_747
+			.saturating_add(Weight::from_parts(25_001_889, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(r.into())))
@@ -1880,6 +1978,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:33 w:32)
@@ -1893,22 +1993,24 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 32]`.
 	fn lock_delegate_dependency(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `928 + r * (131 ±0)`
-		//  Estimated: `6878 + r * (2606 ±0)`
-		// Minimum execution time: 246_455_000 picoseconds.
-		Weight::from_parts(275_334_919, 6878)
-			// Standard Error: 20_911
-			.saturating_add(Weight::from_parts(6_427_525, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `937 + r * (131 ±0)`
+		//  Estimated: `9346 + r * (2607 ±0)`
+		// Minimum execution time: 255_190_000 picoseconds.
+		Weight::from_parts(285_643_922, 9346)
+			// Standard Error: 23_582
+			.saturating_add(Weight::from_parts(6_289_940, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
-			.saturating_add(Weight::from_parts(0, 2606).saturating_mul(r.into()))
+			.saturating_add(Weight::from_parts(0, 2607).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::CodeInfoOf` (r:33 w:32)
@@ -1922,13 +2024,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 32]`.
 	fn unlock_delegate_dependency(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `969 + r * (183 ±0)`
+		//  Measured:  `972 + r * (184 ±0)`
 		//  Estimated: `129453 + r * (2568 ±0)`
-		// Minimum execution time: 254_472_000 picoseconds.
-		Weight::from_parts(280_657_909, 129453)
-			// Standard Error: 20_131
-			.saturating_add(Weight::from_parts(5_644_006, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		// Minimum execution time: 260_061_000 picoseconds.
+		Weight::from_parts(286_849_343, 129453)
+			// Standard Error: 22_406
+			.saturating_add(Weight::from_parts(5_661_459, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -1938,6 +2040,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1951,13 +2055,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_reentrance_count(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `858 + r * (3 ±0)`
-		//  Estimated: `6804 + r * (3 ±0)`
-		// Minimum execution time: 250_535_000 picoseconds.
-		Weight::from_parts(270_318_376, 6804)
-			// Standard Error: 386
-			.saturating_add(Weight::from_parts(174_627, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `861 + r * (3 ±0)`
+		//  Estimated: `9282 + r * (3 ±0)`
+		// Minimum execution time: 250_922_000 picoseconds.
+		Weight::from_parts(277_294_913, 9282)
+			// Standard Error: 391
+			.saturating_add(Weight::from_parts(169_457, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -1965,6 +2069,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -1978,13 +2084,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_account_reentrance_count(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2109 + r * (39 ±0)`
-		//  Estimated: `7899 + r * (40 ±0)`
-		// Minimum execution time: 248_174_000 picoseconds.
-		Weight::from_parts(301_826_520, 7899)
-			// Standard Error: 801
-			.saturating_add(Weight::from_parts(248_479, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(8_u64))
+		//  Measured:  `2112 + r * (39 ±0)`
+		//  Estimated: `10377 + r * (40 ±0)`
+		// Minimum execution time: 267_293_000 picoseconds.
+		Weight::from_parts(309_125_635, 10377)
+			// Standard Error: 637
+			.saturating_add(Weight::from_parts(245_508, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into()))
 	}
@@ -1992,6 +2098,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2007,13 +2115,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_instantiation_nonce(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `861 + r * (3 ±0)`
-		//  Estimated: `6801 + r * (3 ±0)`
-		// Minimum execution time: 246_540_000 picoseconds.
-		Weight::from_parts(268_913_509, 6801)
-			// Standard Error: 378
-			.saturating_add(Weight::from_parts(154_950, 0).saturating_mul(r.into()))
-			.saturating_add(T::DbWeight::get().reads(9_u64))
+		//  Measured:  `864 + r * (3 ±0)`
+		//  Estimated: `9279 + r * (3 ±0)`
+		// Minimum execution time: 256_057_000 picoseconds.
+		Weight::from_parts(278_068_870, 9279)
+			// Standard Error: 335
+			.saturating_add(Weight::from_parts(152_083, 0).saturating_mul(r.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -2022,10 +2130,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_777_000 picoseconds.
-		Weight::from_parts(1_707_601, 0)
-			// Standard Error: 14
-			.saturating_add(Weight::from_parts(15_392, 0).saturating_mul(r.into()))
+		// Minimum execution time: 1_846_000 picoseconds.
+		Weight::from_parts(1_808_029, 0)
+			// Standard Error: 9
+			.saturating_add(Weight::from_parts(14_937, 0).saturating_mul(r.into()))
 	}
 }
 
@@ -2037,8 +2145,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1627`
-		// Minimum execution time: 1_997_000 picoseconds.
-		Weight::from_parts(2_130_000, 1627)
+		// Minimum execution time: 2_103_000 picoseconds.
+		Weight::from_parts(2_260_000, 1627)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -2048,10 +2156,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `452 + k * (69 ±0)`
 		//  Estimated: `442 + k * (70 ±0)`
-		// Minimum execution time: 12_276_000 picoseconds.
-		Weight::from_parts(1_593_881, 442)
-			// Standard Error: 1_135
-			.saturating_add(Weight::from_parts(1_109_302, 0).saturating_mul(k.into()))
+		// Minimum execution time: 12_173_000 picoseconds.
+		Weight::from_parts(12_515_000, 442)
+			// Standard Error: 1_033
+			.saturating_add(Weight::from_parts(1_075_765, 0).saturating_mul(k.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
@@ -2065,8 +2173,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `211 + c * (1 ±0)`
 		//  Estimated: `6149 + c * (1 ±0)`
-		// Minimum execution time: 8_176_000 picoseconds.
-		Weight::from_parts(8_555_388, 6149)
+		// Minimum execution time: 8_054_000 picoseconds.
+		Weight::from_parts(8_503_485, 6149)
 			// Standard Error: 1
 			.saturating_add(Weight::from_parts(1_184, 0).saturating_mul(c.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
@@ -2081,8 +2189,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `510`
 		//  Estimated: `6450`
-		// Minimum execution time: 16_270_000 picoseconds.
-		Weight::from_parts(16_779_000, 6450)
+		// Minimum execution time: 16_966_000 picoseconds.
+		Weight::from_parts(17_445_000, 6450)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -2095,10 +2203,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `171 + k * (1 ±0)`
 		//  Estimated: `3635 + k * (1 ±0)`
-		// Minimum execution time: 3_572_000 picoseconds.
-		Weight::from_parts(1_950_905, 3635)
-			// Standard Error: 1_597
-			.saturating_add(Weight::from_parts(1_123_190, 0).saturating_mul(k.into()))
+		// Minimum execution time: 3_643_000 picoseconds.
+		Weight::from_parts(3_714_000, 3635)
+			// Standard Error: 1_056
+			.saturating_add(Weight::from_parts(1_089_042, 0).saturating_mul(k.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -2108,6 +2216,8 @@ impl WeightInfo for () {
 	/// Proof: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553053f13fd319a03c211337c76e0fe776df` (r:2 w:0)
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553022fca90611ba8b7942f8bdb3b97f6580` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc553022fca90611ba8b7942f8bdb3b97f6580` (r:1 w:1)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:0 w:1)
@@ -2115,13 +2225,13 @@ impl WeightInfo for () {
 	/// The range of component `c` is `[0, 125952]`.
 	fn v12_migration_step(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `325 + c * (1 ±0)`
-		//  Estimated: `6263 + c * (1 ±0)`
-		// Minimum execution time: 16_873_000 picoseconds.
-		Weight::from_parts(16_790_402, 6263)
+		//  Measured:  `328 + c * (1 ±0)`
+		//  Estimated: `6266 + c * (1 ±0)`
+		// Minimum execution time: 19_891_000 picoseconds.
+		Weight::from_parts(19_961_608, 6266)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(396, 0).saturating_mul(c.into()))
-			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(Weight::from_parts(429, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into()))
 	}
@@ -2131,8 +2241,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `440`
 		//  Estimated: `6380`
-		// Minimum execution time: 11_904_000 picoseconds.
-		Weight::from_parts(12_785_000, 6380)
+		// Minimum execution time: 12_483_000 picoseconds.
+		Weight::from_parts(13_205_000, 6380)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -2141,13 +2251,13 @@ impl WeightInfo for () {
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	fn v14_migration_step() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `352`
 		//  Estimated: `6292`
-		// Minimum execution time: 44_920_000 picoseconds.
-		Weight::from_parts(46_163_000, 6292)
+		// Minimum execution time: 42_443_000 picoseconds.
+		Weight::from_parts(43_420_000, 6292)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -2159,8 +2269,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `594`
 		//  Estimated: `6534`
-		// Minimum execution time: 53_864_000 picoseconds.
-		Weight::from_parts(55_139_000, 6534)
+		// Minimum execution time: 52_282_000 picoseconds.
+		Weight::from_parts(54_110_000, 6534)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -2170,8 +2280,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1627`
-		// Minimum execution time: 2_375_000 picoseconds.
-		Weight::from_parts(2_487_000, 1627)
+		// Minimum execution time: 2_539_000 picoseconds.
+		Weight::from_parts(2_644_000, 1627)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -2183,8 +2293,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `166`
 		//  Estimated: `3631`
-		// Minimum execution time: 11_580_000 picoseconds.
-		Weight::from_parts(11_980_000, 3631)
+		// Minimum execution time: 9_473_000 picoseconds.
+		Weight::from_parts(9_907_000, 3631)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -2194,8 +2304,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3607`
-		// Minimum execution time: 4_557_000 picoseconds.
-		Weight::from_parts(4_807_000, 3607)
+		// Minimum execution time: 3_532_000 picoseconds.
+		Weight::from_parts(3_768_000, 3607)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0)
@@ -2206,8 +2316,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `167`
 		//  Estimated: `3632`
-		// Minimum execution time: 6_253_000 picoseconds.
-		Weight::from_parts(6_479_000, 3632)
+		// Minimum execution time: 5_036_000 picoseconds.
+		Weight::from_parts(5_208_000, 3632)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0)
@@ -2218,13 +2328,15 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3607`
-		// Minimum execution time: 6_166_000 picoseconds.
-		Weight::from_parts(6_545_000, 3607)
+		// Minimum execution time: 4_881_000 picoseconds.
+		Weight::from_parts(5_149_000, 3607)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2240,22 +2352,24 @@ impl WeightInfo for () {
 	/// The range of component `c` is `[0, 125952]`.
 	fn call_with_code_per_byte(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `801 + c * (1 ±0)`
-		//  Estimated: `6739 + c * (1 ±0)`
-		// Minimum execution time: 282_232_000 picoseconds.
-		Weight::from_parts(266_148_573, 6739)
-			// Standard Error: 69
-			.saturating_add(Weight::from_parts(34_592, 0).saturating_mul(c.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `804 + c * (1 ±0)`
+		//  Estimated: `9217 + c * (1 ±0)`
+		// Minimum execution time: 280_047_000 picoseconds.
+		Weight::from_parts(270_065_882, 9217)
+			// Standard Error: 86
+			.saturating_add(Weight::from_parts(34_361, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:2 w:2)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:3 w:3)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::Nonce` (r:1 w:1)
@@ -2273,17 +2387,17 @@ impl WeightInfo for () {
 	/// The range of component `s` is `[0, 1048576]`.
 	fn instantiate_with_code(c: u32, i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `323`
-		//  Estimated: `8737`
-		// Minimum execution time: 3_760_879_000 picoseconds.
-		Weight::from_parts(794_812_431, 8737)
+		//  Measured:  `326`
+		//  Estimated: `8740`
+		// Minimum execution time: 3_776_071_000 picoseconds.
+		Weight::from_parts(706_212_213, 8740)
 			// Standard Error: 149
-			.saturating_add(Weight::from_parts(101_881, 0).saturating_mul(c.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_404, 0).saturating_mul(i.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_544, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(11_u64))
+			.saturating_add(Weight::from_parts(98_798, 0).saturating_mul(c.into()))
+			// Standard Error: 17
+			.saturating_add(Weight::from_parts(1_560, 0).saturating_mul(i.into()))
+			// Standard Error: 17
+			.saturating_add(Weight::from_parts(1_476, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(14_u64))
 			.saturating_add(RocksDbWeight::get().writes(10_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
@@ -2292,6 +2406,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:1 w:0)
 	/// Proof: `Contracts::PristineCode` (`max_values`: None, `max_size`: Some(125988), added: 128463, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::Nonce` (r:1 w:1)
 	/// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
@@ -2303,24 +2419,26 @@ impl WeightInfo for () {
 	/// Storage: `System::EventTopics` (r:2 w:2)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `i` is `[0, 1048576]`.
 	/// The range of component `s` is `[0, 1048576]`.
 	fn instantiate(i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `560`
-		//  Estimated: `6504`
-		// Minimum execution time: 1_953_162_000 picoseconds.
-		Weight::from_parts(374_252_840, 6504)
+		//  Measured:  `563`
+		//  Estimated: `8982`
+		// Minimum execution time: 1_966_301_000 picoseconds.
+		Weight::from_parts(376_287_434, 8982)
 			// Standard Error: 7
-			.saturating_add(Weight::from_parts(1_630, 0).saturating_mul(i.into()))
+			.saturating_add(Weight::from_parts(1_643, 0).saturating_mul(i.into()))
 			// Standard Error: 7
-			.saturating_add(Weight::from_parts(1_650, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(10_u64))
+			.saturating_add(Weight::from_parts(1_667, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(13_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2335,19 +2453,21 @@ impl WeightInfo for () {
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `826`
-		//  Estimated: `6766`
-		// Minimum execution time: 187_899_000 picoseconds.
-		Weight::from_parts(195_510_000, 6766)
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `829`
+		//  Estimated: `9244`
+		// Minimum execution time: 197_571_000 picoseconds.
+		Weight::from_parts(206_612_000, 9244)
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:1 w:1)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:0 w:1)
@@ -2355,13 +2475,13 @@ impl WeightInfo for () {
 	/// The range of component `c` is `[0, 125952]`.
 	fn upload_code(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `142`
-		//  Estimated: `3607`
-		// Minimum execution time: 254_800_000 picoseconds.
-		Weight::from_parts(285_603_050, 3607)
-			// Standard Error: 62
-			.saturating_add(Weight::from_parts(66_212, 0).saturating_mul(c.into()))
-			.saturating_add(RocksDbWeight::get().reads(4_u64))
+		//  Measured:  `145`
+		//  Estimated: `6085`
+		// Minimum execution time: 266_006_000 picoseconds.
+		Weight::from_parts(287_700_788, 6085)
+			// Standard Error: 67
+			.saturating_add(Weight::from_parts(63_196, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
@@ -2369,7 +2489,7 @@ impl WeightInfo for () {
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `System::EventTopics` (r:1 w:1)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Contracts::PristineCode` (r:0 w:1)
@@ -2378,8 +2498,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `315`
 		//  Estimated: `3780`
-		// Minimum execution time: 43_553_000 picoseconds.
-		Weight::from_parts(45_036_000, 3780)
+		// Minimum execution time: 42_714_000 picoseconds.
+		Weight::from_parts(44_713_000, 3780)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -2395,8 +2515,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `552`
 		//  Estimated: `8967`
-		// Minimum execution time: 33_223_000 picoseconds.
-		Weight::from_parts(34_385_000, 8967)
+		// Minimum execution time: 33_516_000 picoseconds.
+		Weight::from_parts(34_823_000, 8967)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
@@ -2404,6 +2524,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2417,13 +2539,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `866 + r * (6 ±0)`
-		//  Estimated: `6806 + r * (6 ±0)`
-		// Minimum execution time: 254_213_000 picoseconds.
-		Weight::from_parts(273_464_980, 6806)
-			// Standard Error: 1_362
-			.saturating_add(Weight::from_parts(322_619, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `869 + r * (6 ±0)`
+		//  Estimated: `9284 + r * (6 ±0)`
+		// Minimum execution time: 246_563_000 picoseconds.
+		Weight::from_parts(274_999_814, 9284)
+			// Standard Error: 628
+			.saturating_add(Weight::from_parts(347_395, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2431,6 +2553,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1601 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2444,13 +2568,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_is_contract(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `922 + r * (209 ±0)`
-		//  Estimated: `6826 + r * (2684 ±0)`
-		// Minimum execution time: 250_273_000 picoseconds.
-		Weight::from_parts(122_072_782, 6826)
-			// Standard Error: 5_629
-			.saturating_add(Weight::from_parts(3_490_256, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `925 + r * (209 ±0)`
+		//  Estimated: `9304 + r * (2684 ±0)`
+		// Minimum execution time: 252_236_000 picoseconds.
+		Weight::from_parts(121_390_081, 9304)
+			// Standard Error: 6_206
+			.saturating_add(Weight::from_parts(3_558_718, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 2684).saturating_mul(r.into()))
@@ -2459,6 +2583,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1601 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2472,13 +2598,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (213 ±0)`
-		//  Estimated: `6830 + r * (2688 ±0)`
-		// Minimum execution time: 255_187_000 picoseconds.
-		Weight::from_parts(118_082_505, 6830)
-			// Standard Error: 6_302
-			.saturating_add(Weight::from_parts(4_246_968, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (213 ±0)`
+		//  Estimated: `9308 + r * (2688 ±0)`
+		// Minimum execution time: 269_427_000 picoseconds.
+		Weight::from_parts(134_879_389, 9308)
+			// Standard Error: 6_711
+			.saturating_add(Weight::from_parts(4_408_658, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 2688).saturating_mul(r.into()))
@@ -2487,6 +2613,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2500,13 +2628,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_own_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `873 + r * (6 ±0)`
-		//  Estimated: `6815 + r * (6 ±0)`
-		// Minimum execution time: 256_833_000 picoseconds.
-		Weight::from_parts(273_330_216, 6815)
-			// Standard Error: 881
-			.saturating_add(Weight::from_parts(400_105, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `876 + r * (6 ±0)`
+		//  Estimated: `9293 + r * (6 ±0)`
+		// Minimum execution time: 249_382_000 picoseconds.
+		Weight::from_parts(266_305_110, 9293)
+			// Standard Error: 1_592
+			.saturating_add(Weight::from_parts(460_001, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2514,6 +2642,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2527,18 +2657,20 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller_is_origin(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (3 ±0)`
-		//  Estimated: `6804 + r * (3 ±0)`
-		// Minimum execution time: 244_193_000 picoseconds.
-		Weight::from_parts(271_221_908, 6804)
-			// Standard Error: 442
-			.saturating_add(Weight::from_parts(176_480, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (3 ±0)`
+		//  Estimated: `9282 + r * (3 ±0)`
+		// Minimum execution time: 252_145_000 picoseconds.
+		Weight::from_parts(277_211_668, 9282)
+			// Standard Error: 371
+			.saturating_add(Weight::from_parts(174_394, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2552,13 +2684,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_caller_is_root(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `753 + r * (3 ±0)`
-		//  Estimated: `6693 + r * (3 ±0)`
-		// Minimum execution time: 232_603_000 picoseconds.
-		Weight::from_parts(260_577_368, 6693)
-			// Standard Error: 365
-			.saturating_add(Weight::from_parts(158_126, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(7_u64))
+		//  Measured:  `756 + r * (3 ±0)`
+		//  Estimated: `9171 + r * (3 ±0)`
+		// Minimum execution time: 251_595_000 picoseconds.
+		Weight::from_parts(268_102_575, 9171)
+			// Standard Error: 334
+			.saturating_add(Weight::from_parts(154_836, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(10_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -2566,6 +2698,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2579,13 +2713,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_address(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `867 + r * (6 ±0)`
-		//  Estimated: `6807 + r * (6 ±0)`
-		// Minimum execution time: 247_564_000 picoseconds.
-		Weight::from_parts(275_108_914, 6807)
-			// Standard Error: 505
-			.saturating_add(Weight::from_parts(315_065, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `870 + r * (6 ±0)`
+		//  Estimated: `9285 + r * (6 ±0)`
+		// Minimum execution time: 251_404_000 picoseconds.
+		Weight::from_parts(278_747_574, 9285)
+			// Standard Error: 782
+			.saturating_add(Weight::from_parts(341_598, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2593,6 +2727,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2606,13 +2742,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_gas_left(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (6 ±0)`
-		//  Estimated: `6806 + r * (6 ±0)`
-		// Minimum execution time: 258_799_000 picoseconds.
-		Weight::from_parts(274_338_256, 6806)
-			// Standard Error: 632
-			.saturating_add(Weight::from_parts(355_032, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (6 ±0)`
+		//  Estimated: `9284 + r * (6 ±0)`
+		// Minimum execution time: 255_649_000 picoseconds.
+		Weight::from_parts(276_509_641, 9284)
+			// Standard Error: 1_262
+			.saturating_add(Weight::from_parts(380_225, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2620,6 +2756,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:2 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2633,13 +2771,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_balance(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1007 + r * (6 ±0)`
-		//  Estimated: `6931 + r * (6 ±0)`
-		// Minimum execution time: 253_335_000 picoseconds.
-		Weight::from_parts(273_013_859, 6931)
-			// Standard Error: 2_007
-			.saturating_add(Weight::from_parts(1_540_735, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1010 + r * (6 ±0)`
+		//  Estimated: `9409 + r * (6 ±0)`
+		// Minimum execution time: 267_143_000 picoseconds.
+		Weight::from_parts(298_166_116, 9409)
+			// Standard Error: 3_765
+			.saturating_add(Weight::from_parts(1_620_886, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2647,6 +2785,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2660,13 +2800,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_value_transferred(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `877 + r * (6 ±0)`
-		//  Estimated: `6823 + r * (6 ±0)`
-		// Minimum execution time: 252_325_000 picoseconds.
-		Weight::from_parts(274_733_944, 6823)
-			// Standard Error: 603
-			.saturating_add(Weight::from_parts(314_467, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `880 + r * (6 ±0)`
+		//  Estimated: `9301 + r * (6 ±0)`
+		// Minimum execution time: 250_013_000 picoseconds.
+		Weight::from_parts(281_469_583, 9301)
+			// Standard Error: 730
+			.saturating_add(Weight::from_parts(339_260, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2674,6 +2814,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2687,13 +2829,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_minimum_balance(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `875 + r * (6 ±0)`
-		//  Estimated: `6816 + r * (6 ±0)`
-		// Minimum execution time: 250_698_000 picoseconds.
-		Weight::from_parts(271_707_578, 6816)
-			// Standard Error: 952
-			.saturating_add(Weight::from_parts(318_412, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `878 + r * (6 ±0)`
+		//  Estimated: `9294 + r * (6 ±0)`
+		// Minimum execution time: 256_219_000 picoseconds.
+		Weight::from_parts(275_309_266, 9294)
+			// Standard Error: 1_199
+			.saturating_add(Weight::from_parts(350_824, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2701,6 +2843,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2714,13 +2858,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_block_number(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872 + r * (6 ±0)`
-		//  Estimated: `6819 + r * (6 ±0)`
-		// Minimum execution time: 251_854_000 picoseconds.
-		Weight::from_parts(272_002_212, 6819)
-			// Standard Error: 622
-			.saturating_add(Weight::from_parts(313_353, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `875 + r * (6 ±0)`
+		//  Estimated: `9297 + r * (6 ±0)`
+		// Minimum execution time: 264_644_000 picoseconds.
+		Weight::from_parts(283_856_744, 9297)
+			// Standard Error: 623
+			.saturating_add(Weight::from_parts(334_175, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2728,6 +2872,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2741,13 +2887,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_now(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (6 ±0)`
-		//  Estimated: `6804 + r * (6 ±0)`
-		// Minimum execution time: 252_010_000 picoseconds.
-		Weight::from_parts(270_387_000, 6804)
-			// Standard Error: 659
-			.saturating_add(Weight::from_parts(325_856, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (6 ±0)`
+		//  Estimated: `9282 + r * (6 ±0)`
+		// Minimum execution time: 263_364_000 picoseconds.
+		Weight::from_parts(281_379_508, 9282)
+			// Standard Error: 639
+			.saturating_add(Weight::from_parts(338_021, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2755,6 +2901,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2770,13 +2918,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_weight_to_fee(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `937 + r * (14 ±0)`
-		//  Estimated: `6872 + r * (14 ±0)`
-		// Minimum execution time: 247_933_000 picoseconds.
-		Weight::from_parts(281_550_162, 6872)
-			// Standard Error: 660
-			.saturating_add(Weight::from_parts(1_090_869, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `940 + r * (14 ±0)`
+		//  Estimated: `9350 + r * (14 ±0)`
+		// Minimum execution time: 269_667_000 picoseconds.
+		Weight::from_parts(284_662_802, 9350)
+			// Standard Error: 691
+			.saturating_add(Weight::from_parts(799_249, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 14).saturating_mul(r.into()))
 	}
@@ -2784,6 +2932,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2797,13 +2947,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_input(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `865 + r * (6 ±0)`
-		//  Estimated: `6807 + r * (6 ±0)`
-		// Minimum execution time: 251_158_000 picoseconds.
-		Weight::from_parts(274_623_152, 6807)
-			// Standard Error: 491
-			.saturating_add(Weight::from_parts(263_916, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `868 + r * (6 ±0)`
+		//  Estimated: `9285 + r * (6 ±0)`
+		// Minimum execution time: 267_018_000 picoseconds.
+		Weight::from_parts(281_842_630, 9285)
+			// Standard Error: 453
+			.saturating_add(Weight::from_parts(255_373, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 6).saturating_mul(r.into()))
 	}
@@ -2811,6 +2961,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2824,19 +2976,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_input_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `869`
-		//  Estimated: `6809`
-		// Minimum execution time: 263_205_000 picoseconds.
-		Weight::from_parts(216_792_893, 6809)
+		//  Measured:  `872`
+		//  Estimated: `9287`
+		// Minimum execution time: 258_208_000 picoseconds.
+		Weight::from_parts(227_686_792, 9287)
 			// Standard Error: 23
 			.saturating_add(Weight::from_parts(989, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2850,11 +3004,11 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1]`.
 	fn seal_return(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `853 + r * (45 ±0)`
-		//  Estimated: `6793 + r * (45 ±0)`
-		// Minimum execution time: 239_663_000 picoseconds.
-		Weight::from_parts(266_124_565, 6793)
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `856 + r * (45 ±0)`
+		//  Estimated: `9271 + r * (45 ±0)`
+		// Minimum execution time: 245_714_000 picoseconds.
+		Weight::from_parts(272_527_059, 9271)
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 45).saturating_mul(r.into()))
 	}
@@ -2862,6 +3016,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2875,19 +3031,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_return_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863`
-		//  Estimated: `6810`
-		// Minimum execution time: 241_763_000 picoseconds.
-		Weight::from_parts(266_535_552, 6810)
+		//  Measured:  `866`
+		//  Estimated: `9288`
+		// Minimum execution time: 256_060_000 picoseconds.
+		Weight::from_parts(276_710_811, 9288)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(320, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(312, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:3)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:1 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:2)
@@ -2901,28 +3059,30 @@ impl WeightInfo for () {
 	/// Storage: `System::EventTopics` (r:4 w:4)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// Storage: `Contracts::DeletionQueue` (r:0 w:1)
 	/// Proof: `Contracts::DeletionQueue` (`max_values`: None, `max_size`: Some(142), added: 2617, mode: `Measured`)
 	/// The range of component `r` is `[0, 1]`.
 	fn seal_terminate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2972 + r * (316 ±0)`
-		//  Estimated: `8912 + r * (5266 ±0)`
-		// Minimum execution time: 265_888_000 picoseconds.
-		Weight::from_parts(291_232_232, 8912)
-			// Standard Error: 845_475
-			.saturating_add(Weight::from_parts(104_398_867, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
-			.saturating_add(RocksDbWeight::get().reads((7_u64).saturating_mul(r.into())))
+		//  Measured:  `2902 + r * (529 ±0)`
+		//  Estimated: `11317 + r * (5479 ±0)`
+		// Minimum execution time: 270_479_000 picoseconds.
+		Weight::from_parts(296_706_989, 11317)
+			// Standard Error: 813_407
+			.saturating_add(Weight::from_parts(109_236_910, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
+			.saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((10_u64).saturating_mul(r.into())))
-			.saturating_add(Weight::from_parts(0, 5266).saturating_mul(r.into()))
+			.saturating_add(Weight::from_parts(0, 5479).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2938,13 +3098,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_random(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `944 + r * (10 ±0)`
-		//  Estimated: `6885 + r * (10 ±0)`
-		// Minimum execution time: 248_500_000 picoseconds.
-		Weight::from_parts(282_353_053, 6885)
-			// Standard Error: 1_144
-			.saturating_add(Weight::from_parts(1_193_841, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `947 + r * (10 ±0)`
+		//  Estimated: `9363 + r * (10 ±0)`
+		// Minimum execution time: 251_787_000 picoseconds.
+		Weight::from_parts(284_036_313, 9363)
+			// Standard Error: 2_560
+			.saturating_add(Weight::from_parts(1_238_301, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into()))
 	}
@@ -2952,6 +3112,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2965,13 +3127,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_deposit_event(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `863 + r * (10 ±0)`
-		//  Estimated: `6805 + r * (10 ±0)`
-		// Minimum execution time: 248_130_000 picoseconds.
-		Weight::from_parts(279_583_178, 6805)
-			// Standard Error: 971
-			.saturating_add(Weight::from_parts(1_987_941, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `866 + r * (10 ±0)`
+		//  Estimated: `9283 + r * (10 ±0)`
+		// Minimum execution time: 250_566_000 picoseconds.
+		Weight::from_parts(275_402_784, 9283)
+			// Standard Error: 3_939
+			.saturating_add(Weight::from_parts(1_941_995, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(r.into()))
 	}
@@ -2979,6 +3141,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -2993,15 +3157,15 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_deposit_event_per_topic_and_byte(t: u32, n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `880 + t * (32 ±0)`
-		//  Estimated: `6825 + t * (2508 ±0)`
-		// Minimum execution time: 258_594_000 picoseconds.
-		Weight::from_parts(276_734_422, 6825)
-			// Standard Error: 102_093
-			.saturating_add(Weight::from_parts(2_559_383, 0).saturating_mul(t.into()))
+		//  Measured:  `883 + t * (32 ±0)`
+		//  Estimated: `9303 + t * (2508 ±0)`
+		// Minimum execution time: 267_544_000 picoseconds.
+		Weight::from_parts(280_117_825, 9303)
+			// Standard Error: 102_111
+			.saturating_add(Weight::from_parts(3_253_038, 0).saturating_mul(t.into()))
 			// Standard Error: 28
-			.saturating_add(Weight::from_parts(501, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(668, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into())))
@@ -3011,6 +3175,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3024,13 +3190,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_debug_message(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `862 + r * (7 ±0)`
-		//  Estimated: `6807 + r * (7 ±0)`
-		// Minimum execution time: 154_564_000 picoseconds.
-		Weight::from_parts(168_931_365, 6807)
-			// Standard Error: 349
-			.saturating_add(Weight::from_parts(226_848, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `865 + r * (7 ±0)`
+		//  Estimated: `9285 + r * (7 ±0)`
+		// Minimum execution time: 157_769_000 picoseconds.
+		Weight::from_parts(173_026_565, 9285)
+			// Standard Error: 405
+			.saturating_add(Weight::from_parts(219_727, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 7).saturating_mul(r.into()))
 	}
@@ -3038,6 +3204,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3051,13 +3219,13 @@ impl WeightInfo for () {
 	/// The range of component `i` is `[0, 1048576]`.
 	fn seal_debug_message_per_byte(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `125813`
-		//  Estimated: `131755`
-		// Minimum execution time: 394_382_000 picoseconds.
-		Weight::from_parts(376_780_500, 131755)
+		//  Measured:  `125816`
+		//  Estimated: `131758`
+		// Minimum execution time: 403_961_000 picoseconds.
+		Weight::from_parts(376_480_872, 131758)
 			// Standard Error: 12
-			.saturating_add(Weight::from_parts(1_026, 0).saturating_mul(i.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_041, 0).saturating_mul(i.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -3065,13 +3233,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_set_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `924 + r * (292 ±0)`
-		//  Estimated: `926 + r * (293 ±0)`
-		// Minimum execution time: 249_757_000 picoseconds.
-		Weight::from_parts(177_324_374, 926)
-			// Standard Error: 9_512
-			.saturating_add(Weight::from_parts(6_176_717, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `927 + r * (292 ±0)`
+		//  Estimated: `929 + r * (293 ±0)`
+		// Minimum execution time: 256_272_000 picoseconds.
+		Weight::from_parts(181_058_379, 929)
+			// Standard Error: 9_838
+			.saturating_add(Weight::from_parts(6_316_677, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3082,13 +3250,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_set_storage_per_new_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1447`
-		//  Estimated: `1430`
-		// Minimum execution time: 267_564_000 picoseconds.
-		Weight::from_parts(328_701_080, 1430)
-			// Standard Error: 61
-			.saturating_add(Weight::from_parts(576, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(12_u64))
+		//  Measured:  `1450`
+		//  Estimated: `1433`
+		// Minimum execution time: 268_713_000 picoseconds.
+		Weight::from_parts(328_329_131, 1433)
+			// Standard Error: 66
+			.saturating_add(Weight::from_parts(962, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(15_u64))
 			.saturating_add(RocksDbWeight::get().writes(8_u64))
 	}
 	/// Storage: `Skipped::Metadata` (r:0 w:0)
@@ -3096,13 +3264,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_set_storage_per_old_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1253 + n * (1 ±0)`
-		//  Estimated: `1253 + n * (1 ±0)`
-		// Minimum execution time: 266_347_000 picoseconds.
-		Weight::from_parts(289_824_718, 1253)
-			// Standard Error: 34
-			.saturating_add(Weight::from_parts(184, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1256 + n * (1 ±0)`
+		//  Estimated: `1256 + n * (1 ±0)`
+		// Minimum execution time: 265_683_000 picoseconds.
+		Weight::from_parts(293_784_477, 1256)
+			// Standard Error: 31
+			.saturating_add(Weight::from_parts(377, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3111,13 +3279,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_clear_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (288 ±0)`
-		//  Estimated: `927 + r * (289 ±0)`
-		// Minimum execution time: 247_207_000 picoseconds.
-		Weight::from_parts(179_856_075, 927)
-			// Standard Error: 9_383
-			.saturating_add(Weight::from_parts(6_053_198, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (288 ±0)`
+		//  Estimated: `930 + r * (289 ±0)`
+		// Minimum execution time: 269_959_000 picoseconds.
+		Weight::from_parts(186_065_911, 930)
+			// Standard Error: 9_679
+			.saturating_add(Weight::from_parts(6_286_855, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3128,13 +3296,11 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_clear_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1249 + n * (1 ±0)`
-		//  Estimated: `1249 + n * (1 ±0)`
-		// Minimum execution time: 262_655_000 picoseconds.
-		Weight::from_parts(289_482_543, 1249)
-			// Standard Error: 35
-			.saturating_add(Weight::from_parts(92, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1252 + n * (1 ±0)`
+		//  Estimated: `1252 + n * (1 ±0)`
+		// Minimum execution time: 265_805_000 picoseconds.
+		Weight::from_parts(294_633_695, 1252)
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3143,13 +3309,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_get_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `921 + r * (296 ±0)`
-		//  Estimated: `923 + r * (297 ±0)`
-		// Minimum execution time: 247_414_000 picoseconds.
-		Weight::from_parts(203_317_182, 923)
-			// Standard Error: 7_191
-			.saturating_add(Weight::from_parts(4_925_154, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `924 + r * (296 ±0)`
+		//  Estimated: `926 + r * (297 ±0)`
+		// Minimum execution time: 264_592_000 picoseconds.
+		Weight::from_parts(204_670_461, 926)
+			// Standard Error: 6_869
+			.saturating_add(Weight::from_parts(5_137_920, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 297).saturating_mul(r.into()))
@@ -3159,13 +3325,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_get_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1265 + n * (1 ±0)`
-		//  Estimated: `1265 + n * (1 ±0)`
-		// Minimum execution time: 258_910_000 picoseconds.
-		Weight::from_parts(283_086_514, 1265)
-			// Standard Error: 39
-			.saturating_add(Weight::from_parts(980, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1268 + n * (1 ±0)`
+		//  Estimated: `1268 + n * (1 ±0)`
+		// Minimum execution time: 273_165_000 picoseconds.
+		Weight::from_parts(297_883_669, 1268)
+			// Standard Error: 37
+			.saturating_add(Weight::from_parts(576, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3174,13 +3340,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_contains_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `932 + r * (288 ±0)`
-		//  Estimated: `929 + r * (289 ±0)`
-		// Minimum execution time: 252_410_000 picoseconds.
-		Weight::from_parts(201_227_879, 929)
-			// Standard Error: 6_899
-			.saturating_add(Weight::from_parts(4_774_983, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `935 + r * (288 ±0)`
+		//  Estimated: `932 + r * (289 ±0)`
+		// Minimum execution time: 252_257_000 picoseconds.
+		Weight::from_parts(205_018_595, 932)
+			// Standard Error: 7_605
+			.saturating_add(Weight::from_parts(4_933_378, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 289).saturating_mul(r.into()))
@@ -3190,13 +3356,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_contains_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1252 + n * (1 ±0)`
-		//  Estimated: `1252 + n * (1 ±0)`
-		// Minimum execution time: 259_053_000 picoseconds.
-		Weight::from_parts(283_392_084, 1252)
-			// Standard Error: 41
-			.saturating_add(Weight::from_parts(213, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1255 + n * (1 ±0)`
+		//  Estimated: `1255 + n * (1 ±0)`
+		// Minimum execution time: 266_839_000 picoseconds.
+		Weight::from_parts(292_064_487, 1255)
+			// Standard Error: 34
+			.saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3205,13 +3371,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_take_storage(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `914 + r * (296 ±0)`
-		//  Estimated: `919 + r * (297 ±0)`
-		// Minimum execution time: 251_371_000 picoseconds.
-		Weight::from_parts(177_119_717, 919)
-			// Standard Error: 9_421
-			.saturating_add(Weight::from_parts(6_226_005, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `917 + r * (296 ±0)`
+		//  Estimated: `922 + r * (297 ±0)`
+		// Minimum execution time: 266_072_000 picoseconds.
+		Weight::from_parts(189_018_352, 922)
+			// Standard Error: 9_530
+			.saturating_add(Weight::from_parts(6_481_011, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3222,13 +3388,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 16384]`.
 	fn seal_take_storage_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1266 + n * (1 ±0)`
-		//  Estimated: `1266 + n * (1 ±0)`
-		// Minimum execution time: 263_350_000 picoseconds.
-		Weight::from_parts(284_323_917, 1266)
-			// Standard Error: 31
-			.saturating_add(Weight::from_parts(921, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1269 + n * (1 ±0)`
+		//  Estimated: `1269 + n * (1 ±0)`
+		// Minimum execution time: 270_703_000 picoseconds.
+		Weight::from_parts(292_867_105, 1269)
+			// Standard Error: 30
+			.saturating_add(Weight::from_parts(800, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3236,6 +3402,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1602 w:1601)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3249,13 +3417,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_transfer(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1415 + r * (45 ±0)`
-		//  Estimated: `7307 + r * (2520 ±0)`
-		// Minimum execution time: 248_701_000 picoseconds.
-		Weight::from_parts(17_811_969, 7307)
-			// Standard Error: 35_154
-			.saturating_add(Weight::from_parts(31_809_738, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `1418 + r * (45 ±0)`
+		//  Estimated: `9785 + r * (2520 ±0)`
+		// Minimum execution time: 251_843_000 picoseconds.
+		Weight::from_parts(181_026_888, 9785)
+			// Standard Error: 38_221
+			.saturating_add(Weight::from_parts(30_626_681, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3265,6 +3433,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:801 w:801)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:0)
@@ -3278,13 +3448,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 800]`.
 	fn seal_call(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1260 + r * (245 ±0)`
-		//  Estimated: `9440 + r * (2721 ±0)`
-		// Minimum execution time: 247_335_000 picoseconds.
-		Weight::from_parts(264_025_000, 9440)
-			// Standard Error: 121_299
-			.saturating_add(Weight::from_parts(234_770_827, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(11_u64))
+		//  Measured:  `1263 + r * (245 ±0)`
+		//  Estimated: `9635 + r * (2721 ±0)`
+		// Minimum execution time: 254_881_000 picoseconds.
+		Weight::from_parts(272_871_000, 9635)
+			// Standard Error: 94_527
+			.saturating_add(Weight::from_parts(233_379_497, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(14_u64))
 			.saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into())))
@@ -3294,6 +3464,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:736 w:0)
@@ -3308,12 +3480,12 @@ impl WeightInfo for () {
 	fn seal_delegate_call(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + r * (576 ±0)`
-		//  Estimated: `6812 + r * (2637 ±3)`
-		// Minimum execution time: 261_011_000 picoseconds.
-		Weight::from_parts(264_554_000, 6812)
-			// Standard Error: 104_415
-			.saturating_add(Weight::from_parts(231_627_084, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Estimated: `9290 + r * (2637 ±3)`
+		// Minimum execution time: 266_704_000 picoseconds.
+		Weight::from_parts(273_165_000, 9290)
+			// Standard Error: 141_486
+			.saturating_add(Weight::from_parts(232_947_049, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3323,6 +3495,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:2)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:2 w:2)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:0)
@@ -3337,15 +3511,15 @@ impl WeightInfo for () {
 	/// The range of component `c` is `[0, 1048576]`.
 	fn seal_call_per_transfer_clone_byte(t: u32, c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1307 + t * (277 ±0)`
-		//  Estimated: `12197 + t * (5227 ±0)`
-		// Minimum execution time: 445_561_000 picoseconds.
-		Weight::from_parts(62_287_490, 12197)
-			// Standard Error: 11_797_697
-			.saturating_add(Weight::from_parts(357_530_529, 0).saturating_mul(t.into()))
+		//  Measured:  `1310 + t * (277 ±0)`
+		//  Estimated: `12200 + t * (5227 ±0)`
+		// Minimum execution time: 446_451_000 picoseconds.
+		Weight::from_parts(68_175_222, 12200)
+			// Standard Error: 11_619_250
+			.saturating_add(Weight::from_parts(354_237_260, 0).saturating_mul(t.into()))
 			// Standard Error: 17
-			.saturating_add(Weight::from_parts(970, 0).saturating_mul(c.into()))
-			.saturating_add(RocksDbWeight::get().reads(13_u64))
+			.saturating_add(Weight::from_parts(987, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(16_u64))
 			.saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(t.into())))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(t.into())))
@@ -3355,6 +3529,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:802 w:802)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:801 w:801)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:801 w:800)
@@ -3368,17 +3544,17 @@ impl WeightInfo for () {
 	/// Storage: `System::EventTopics` (r:803 w:803)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:800 w:800)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `r` is `[1, 800]`.
 	fn seal_instantiate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1278 + r * (255 ±0)`
-		//  Estimated: `9620 + r * (2731 ±0)`
-		// Minimum execution time: 621_897_000 picoseconds.
-		Weight::from_parts(631_687_000, 9620)
-			// Standard Error: 215_241
-			.saturating_add(Weight::from_parts(350_527_831, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(11_u64))
+		//  Measured:  `1281 + r * (255 ±0)`
+		//  Estimated: `9623 + r * (2731 ±0)`
+		// Minimum execution time: 628_156_000 picoseconds.
+		Weight::from_parts(642_052_000, 9623)
+			// Standard Error: 223_957
+			.saturating_add(Weight::from_parts(348_660_264, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(14_u64))
 			.saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 			.saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(r.into())))
@@ -3388,6 +3564,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:3 w:3)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:2 w:2)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:2 w:1)
@@ -3401,23 +3579,23 @@ impl WeightInfo for () {
 	/// Storage: `System::EventTopics` (r:4 w:4)
 	/// Proof: `System::EventTopics` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(157), added: 2632, mode: `Measured`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `Measured`)
 	/// The range of component `t` is `[0, 1]`.
 	/// The range of component `i` is `[0, 983040]`.
 	/// The range of component `s` is `[0, 983040]`.
 	fn seal_instantiate_per_transfer_input_salt_byte(t: u32, i: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1303 + t * (104 ±0)`
-		//  Estimated: `12211 + t * (2549 ±1)`
-		// Minimum execution time: 2_181_184_000 picoseconds.
-		Weight::from_parts(1_194_190_111, 12211)
-			// Standard Error: 11_578_766
-			.saturating_add(Weight::from_parts(6_361_884, 0).saturating_mul(t.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_025, 0).saturating_mul(i.into()))
-			// Standard Error: 18
-			.saturating_add(Weight::from_parts(1_158, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(16_u64))
+		//  Measured:  `1306 + t * (104 ±0)`
+		//  Estimated: `12214 + t * (2549 ±1)`
+		// Minimum execution time: 2_106_379_000 picoseconds.
+		Weight::from_parts(1_098_227_098, 12214)
+			// Standard Error: 12_549_729
+			.saturating_add(Weight::from_parts(21_628_382, 0).saturating_mul(t.into()))
+			// Standard Error: 19
+			.saturating_add(Weight::from_parts(1_059, 0).saturating_mul(i.into()))
+			// Standard Error: 19
+			.saturating_add(Weight::from_parts(1_220, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(19_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into())))
 			.saturating_add(RocksDbWeight::get().writes(11_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into())))
@@ -3427,6 +3605,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3440,13 +3620,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_sha2_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `862 + r * (8 ±0)`
-		//  Estimated: `6801 + r * (8 ±0)`
-		// Minimum execution time: 241_609_000 picoseconds.
-		Weight::from_parts(268_716_874, 6801)
-			// Standard Error: 617
-			.saturating_add(Weight::from_parts(377_753, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `865 + r * (8 ±0)`
+		//  Estimated: `9279 + r * (8 ±0)`
+		// Minimum execution time: 257_102_000 picoseconds.
+		Weight::from_parts(278_920_692, 9279)
+			// Standard Error: 464
+			.saturating_add(Weight::from_parts(374_120, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -3454,6 +3634,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3467,19 +3649,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_sha2_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `870`
-		//  Estimated: `6808`
-		// Minimum execution time: 261_296_000 picoseconds.
-		Weight::from_parts(255_531_654, 6808)
+		//  Measured:  `873`
+		//  Estimated: `9286`
+		// Minimum execution time: 266_609_000 picoseconds.
+		Weight::from_parts(263_034_132, 9286)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_081, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_082, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3493,13 +3677,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_keccak_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6806 + r * (8 ±0)`
-		// Minimum execution time: 243_583_000 picoseconds.
-		Weight::from_parts(270_025_058, 6806)
-			// Standard Error: 560
-			.saturating_add(Weight::from_parts(767_519, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9284 + r * (8 ±0)`
+		// Minimum execution time: 246_275_000 picoseconds.
+		Weight::from_parts(279_091_594, 9284)
+			// Standard Error: 887
+			.saturating_add(Weight::from_parts(810_394, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -3507,6 +3691,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3520,19 +3706,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_keccak_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6814`
-		// Minimum execution time: 253_798_000 picoseconds.
-		Weight::from_parts(265_542_351, 6814)
+		//  Measured:  `875`
+		//  Estimated: `9292`
+		// Minimum execution time: 249_254_000 picoseconds.
+		Weight::from_parts(270_833_823, 9292)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(3_343, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(3_347, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3546,13 +3734,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_blake2_256(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6808 + r * (8 ±0)`
-		// Minimum execution time: 247_332_000 picoseconds.
-		Weight::from_parts(269_183_656, 6808)
-			// Standard Error: 665
-			.saturating_add(Weight::from_parts(443_386, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9286 + r * (8 ±0)`
+		// Minimum execution time: 259_131_000 picoseconds.
+		Weight::from_parts(272_665_020, 9286)
+			// Standard Error: 862
+			.saturating_add(Weight::from_parts(451_247, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -3560,6 +3748,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3573,19 +3763,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_blake2_256_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6813`
-		// Minimum execution time: 250_855_000 picoseconds.
-		Weight::from_parts(258_752_975, 6813)
+		//  Measured:  `875`
+		//  Estimated: `9291`
+		// Minimum execution time: 276_465_000 picoseconds.
+		Weight::from_parts(269_450_297, 9291)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_202, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(Weight::from_parts(1_190, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3599,13 +3791,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_hash_blake2_128(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `864 + r * (8 ±0)`
-		//  Estimated: `6805 + r * (8 ±0)`
-		// Minimum execution time: 240_733_000 picoseconds.
-		Weight::from_parts(269_134_358, 6805)
-			// Standard Error: 512
-			.saturating_add(Weight::from_parts(440_043, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `867 + r * (8 ±0)`
+		//  Estimated: `9283 + r * (8 ±0)`
+		// Minimum execution time: 248_349_000 picoseconds.
+		Weight::from_parts(273_660_686, 9283)
+			// Standard Error: 656
+			.saturating_add(Weight::from_parts(444_293, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 8).saturating_mul(r.into()))
 	}
@@ -3613,6 +3805,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3626,19 +3820,21 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 1048576]`.
 	fn seal_hash_blake2_128_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `872`
-		//  Estimated: `6811`
-		// Minimum execution time: 247_377_000 picoseconds.
-		Weight::from_parts(261_077_322, 6811)
-			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_195, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `875`
+		//  Estimated: `9289`
+		// Minimum execution time: 252_107_000 picoseconds.
+		Weight::from_parts(267_427_726, 9289)
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_199, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3652,13 +3848,13 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 125697]`.
 	fn seal_sr25519_verify_per_byte(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `997 + n * (1 ±0)`
-		//  Estimated: `6934 + n * (1 ±0)`
-		// Minimum execution time: 307_337_000 picoseconds.
-		Weight::from_parts(326_710_473, 6934)
-			// Standard Error: 9
-			.saturating_add(Weight::from_parts(5_765, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `1000 + n * (1 ±0)`
+		//  Estimated: `9412 + n * (1 ±0)`
+		// Minimum execution time: 311_252_000 picoseconds.
+		Weight::from_parts(333_250_773, 9412)
+			// Standard Error: 12
+			.saturating_add(Weight::from_parts(5_668, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
@@ -3666,6 +3862,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3679,13 +3877,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_sr25519_verify(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `805 + r * (112 ±0)`
-		//  Estimated: `6748 + r * (112 ±0)`
-		// Minimum execution time: 245_432_000 picoseconds.
-		Weight::from_parts(294_206_377, 6748)
-			// Standard Error: 7_229
-			.saturating_add(Weight::from_parts(41_480_485, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `810 + r * (112 ±0)`
+		//  Estimated: `9226 + r * (112 ±0)`
+		// Minimum execution time: 267_431_000 picoseconds.
+		Weight::from_parts(300_733_048, 9226)
+			// Standard Error: 8_806
+			.saturating_add(Weight::from_parts(42_169_197, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(r.into()))
 	}
@@ -3693,6 +3891,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3706,13 +3906,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_ecdsa_recover(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `907 + r * (76 ±0)`
-		//  Estimated: `6802 + r * (77 ±0)`
-		// Minimum execution time: 247_788_000 picoseconds.
-		Weight::from_parts(303_940_062, 6802)
-			// Standard Error: 10_671
-			.saturating_add(Weight::from_parts(45_730_772, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `910 + r * (76 ±0)`
+		//  Estimated: `9279 + r * (77 ±0)`
+		// Minimum execution time: 265_905_000 picoseconds.
+		Weight::from_parts(305_381_951, 9279)
+			// Standard Error: 9_863
+			.saturating_add(Weight::from_parts(45_771_182, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 77).saturating_mul(r.into()))
 	}
@@ -3720,6 +3920,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3733,13 +3935,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 160]`.
 	fn seal_ecdsa_to_eth_address(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `877 + r * (42 ±0)`
-		//  Estimated: `6816 + r * (42 ±0)`
-		// Minimum execution time: 248_825_000 picoseconds.
-		Weight::from_parts(286_832_225, 6816)
-			// Standard Error: 5_274
-			.saturating_add(Weight::from_parts(11_889_262, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `880 + r * (42 ±0)`
+		//  Estimated: `9294 + r * (42 ±0)`
+		// Minimum execution time: 266_701_000 picoseconds.
+		Weight::from_parts(292_407_888, 9294)
+			// Standard Error: 5_394
+			.saturating_add(Weight::from_parts(11_896_065, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 42).saturating_mul(r.into()))
 	}
@@ -3747,6 +3949,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1536 w:1536)
@@ -3761,12 +3965,12 @@ impl WeightInfo for () {
 	fn seal_set_code_hash(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + r * (965 ±0)`
-		//  Estimated: `6807 + r * (3090 ±7)`
-		// Minimum execution time: 244_982_000 picoseconds.
-		Weight::from_parts(265_297_000, 6807)
-			// Standard Error: 39_895
-			.saturating_add(Weight::from_parts(22_435_888, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Estimated: `9285 + r * (3090 ±7)`
+		// Minimum execution time: 268_755_000 picoseconds.
+		Weight::from_parts(272_300_000, 9285)
+			// Standard Error: 43_747
+			.saturating_add(Weight::from_parts(25_001_889, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(r.into())))
@@ -3776,6 +3980,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:33 w:32)
@@ -3789,22 +3995,24 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 32]`.
 	fn lock_delegate_dependency(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `928 + r * (131 ±0)`
-		//  Estimated: `6878 + r * (2606 ±0)`
-		// Minimum execution time: 246_455_000 picoseconds.
-		Weight::from_parts(275_334_919, 6878)
-			// Standard Error: 20_911
-			.saturating_add(Weight::from_parts(6_427_525, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `937 + r * (131 ±0)`
+		//  Estimated: `9346 + r * (2607 ±0)`
+		// Minimum execution time: 255_190_000 picoseconds.
+		Weight::from_parts(285_643_922, 9346)
+			// Standard Error: 23_582
+			.saturating_add(Weight::from_parts(6_289_940, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
-			.saturating_add(Weight::from_parts(0, 2606).saturating_mul(r.into()))
+			.saturating_add(Weight::from_parts(0, 2607).saturating_mul(r.into()))
 	}
 	/// Storage: `Contracts::MigrationInProgress` (r:1 w:0)
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `MaxEncodedLen`)
 	/// Storage: `Contracts::CodeInfoOf` (r:33 w:32)
@@ -3818,13 +4026,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 32]`.
 	fn unlock_delegate_dependency(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `969 + r * (183 ±0)`
+		//  Measured:  `972 + r * (184 ±0)`
 		//  Estimated: `129453 + r * (2568 ±0)`
-		// Minimum execution time: 254_472_000 picoseconds.
-		Weight::from_parts(280_657_909, 129453)
-			// Standard Error: 20_131
-			.saturating_add(Weight::from_parts(5_644_006, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		// Minimum execution time: 260_061_000 picoseconds.
+		Weight::from_parts(286_849_343, 129453)
+			// Standard Error: 22_406
+			.saturating_add(Weight::from_parts(5_661_459, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
@@ -3834,6 +4042,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3847,13 +4057,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_reentrance_count(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `858 + r * (3 ±0)`
-		//  Estimated: `6804 + r * (3 ±0)`
-		// Minimum execution time: 250_535_000 picoseconds.
-		Weight::from_parts(270_318_376, 6804)
-			// Standard Error: 386
-			.saturating_add(Weight::from_parts(174_627, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `861 + r * (3 ±0)`
+		//  Estimated: `9282 + r * (3 ±0)`
+		// Minimum execution time: 250_922_000 picoseconds.
+		Weight::from_parts(277_294_913, 9282)
+			// Standard Error: 391
+			.saturating_add(Weight::from_parts(169_457, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -3861,6 +4071,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3874,13 +4086,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_account_reentrance_count(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2109 + r * (39 ±0)`
-		//  Estimated: `7899 + r * (40 ±0)`
-		// Minimum execution time: 248_174_000 picoseconds.
-		Weight::from_parts(301_826_520, 7899)
-			// Standard Error: 801
-			.saturating_add(Weight::from_parts(248_479, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(8_u64))
+		//  Measured:  `2112 + r * (39 ±0)`
+		//  Estimated: `10377 + r * (40 ±0)`
+		// Minimum execution time: 267_293_000 picoseconds.
+		Weight::from_parts(309_125_635, 10377)
+			// Standard Error: 637
+			.saturating_add(Weight::from_parts(245_508, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 40).saturating_mul(r.into()))
 	}
@@ -3888,6 +4100,8 @@ impl WeightInfo for () {
 	/// Proof: `Contracts::MigrationInProgress` (`max_values`: Some(1), `max_size`: Some(1026), added: 1521, mode: `Measured`)
 	/// Storage: `System::Account` (r:1 w:0)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`)
+	/// Storage: `Parameters::Parameters` (r:3 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `Measured`)
 	/// Storage: `Contracts::ContractInfoOf` (r:1 w:1)
 	/// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`)
 	/// Storage: `Contracts::CodeInfoOf` (r:1 w:0)
@@ -3903,13 +4117,13 @@ impl WeightInfo for () {
 	/// The range of component `r` is `[0, 1600]`.
 	fn seal_instantiation_nonce(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `861 + r * (3 ±0)`
-		//  Estimated: `6801 + r * (3 ±0)`
-		// Minimum execution time: 246_540_000 picoseconds.
-		Weight::from_parts(268_913_509, 6801)
-			// Standard Error: 378
-			.saturating_add(Weight::from_parts(154_950, 0).saturating_mul(r.into()))
-			.saturating_add(RocksDbWeight::get().reads(9_u64))
+		//  Measured:  `864 + r * (3 ±0)`
+		//  Estimated: `9279 + r * (3 ±0)`
+		// Minimum execution time: 256_057_000 picoseconds.
+		Weight::from_parts(278_068_870, 9279)
+			// Standard Error: 335
+			.saturating_add(Weight::from_parts(152_083, 0).saturating_mul(r.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 3).saturating_mul(r.into()))
 	}
@@ -3918,9 +4132,9 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_777_000 picoseconds.
-		Weight::from_parts(1_707_601, 0)
-			// Standard Error: 14
-			.saturating_add(Weight::from_parts(15_392, 0).saturating_mul(r.into()))
+		// Minimum execution time: 1_846_000 picoseconds.
+		Weight::from_parts(1_808_029, 0)
+			// Standard Error: 9
+			.saturating_add(Weight::from_parts(14_937, 0).saturating_mul(r.into()))
 	}
 }
diff --git a/substrate/frame/conviction-voting/src/weights.rs b/substrate/frame/conviction-voting/src/weights.rs
index 225f5c2cadd..75d9e8499ed 100644
--- a/substrate/frame/conviction-voting/src/weights.rs
+++ b/substrate/frame/conviction-voting/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_conviction_voting
+//! Autogenerated weights for `pallet_conviction_voting`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/conviction-voting/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/conviction-voting/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_conviction_voting.
+/// Weight functions needed for `pallet_conviction_voting`.
 pub trait WeightInfo {
 	fn vote_new() -> Weight;
 	fn vote_existing() -> Weight;
@@ -61,280 +60,300 @@ pub trait WeightInfo {
 	fn unlock() -> Weight;
 }
 
-/// Weights for pallet_conviction_voting using the Substrate node and recommended hardware.
+/// Weights for `pallet_conviction_voting` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote_new() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `13074`
+		//  Measured:  `13141`
 		//  Estimated: `219984`
-		// Minimum execution time: 112_936_000 picoseconds.
-		Weight::from_parts(116_972_000, 219984)
+		// Minimum execution time: 102_539_000 picoseconds.
+		Weight::from_parts(105_873_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
-			.saturating_add(T::DbWeight::get().writes(6_u64))
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote_existing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `20216`
+		//  Measured:  `20283`
 		//  Estimated: `219984`
-		// Minimum execution time: 291_971_000 picoseconds.
-		Weight::from_parts(301_738_000, 219984)
+		// Minimum execution time: 275_424_000 picoseconds.
+		Weight::from_parts(283_690_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
-			.saturating_add(T::DbWeight::get().writes(6_u64))
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn remove_vote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `19968`
+		//  Measured:  `20035`
 		//  Estimated: `219984`
-		// Minimum execution time: 262_582_000 picoseconds.
-		Weight::from_parts(270_955_000, 219984)
+		// Minimum execution time: 275_109_000 picoseconds.
+		Weight::from_parts(281_315_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn remove_other_vote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `12675`
+		//  Measured:  `12742`
 		//  Estimated: `30706`
-		// Minimum execution time: 52_909_000 picoseconds.
-		Weight::from_parts(56_365_000, 30706)
+		// Minimum execution time: 49_629_000 picoseconds.
+		Weight::from_parts(51_300_000, 30706)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 1]`.
 	fn delegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `240 + r * (1627 ±0)`
+		//  Measured:  `306 + r * (1628 ±0)`
 		//  Estimated: `109992 + r * (109992 ±0)`
-		// Minimum execution time: 54_640_000 picoseconds.
-		Weight::from_parts(57_185_281, 109992)
-			// Standard Error: 193_362
-			.saturating_add(Weight::from_parts(44_897_418, 0).saturating_mul(r.into()))
+		// Minimum execution time: 45_776_000 picoseconds.
+		Weight::from_parts(47_917_822, 109992)
+			// Standard Error: 124_174
+			.saturating_add(Weight::from_parts(43_171_077, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 1]`.
 	fn undelegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `406 + r * (1376 ±0)`
+		//  Measured:  `472 + r * (1377 ±0)`
 		//  Estimated: `109992 + r * (109992 ±0)`
-		// Minimum execution time: 26_514_000 picoseconds.
-		Weight::from_parts(28_083_732, 109992)
-			// Standard Error: 104_905
-			.saturating_add(Weight::from_parts(40_722_467, 0).saturating_mul(r.into()))
+		// Minimum execution time: 23_600_000 picoseconds.
+		Weight::from_parts(25_001_426, 109992)
+			// Standard Error: 72_034
+			.saturating_add(Weight::from_parts(37_851_873, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn unlock() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `11734`
+		//  Measured:  `11800`
 		//  Estimated: `30706`
-		// Minimum execution time: 71_140_000 picoseconds.
-		Weight::from_parts(77_388_000, 30706)
+		// Minimum execution time: 66_247_000 picoseconds.
+		Weight::from_parts(67_552_000, 30706)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote_new() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `13074`
+		//  Measured:  `13141`
 		//  Estimated: `219984`
-		// Minimum execution time: 112_936_000 picoseconds.
-		Weight::from_parts(116_972_000, 219984)
+		// Minimum execution time: 102_539_000 picoseconds.
+		Weight::from_parts(105_873_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
-			.saturating_add(RocksDbWeight::get().writes(6_u64))
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote_existing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `20216`
+		//  Measured:  `20283`
 		//  Estimated: `219984`
-		// Minimum execution time: 291_971_000 picoseconds.
-		Weight::from_parts(301_738_000, 219984)
+		// Minimum execution time: 275_424_000 picoseconds.
+		Weight::from_parts(283_690_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
-			.saturating_add(RocksDbWeight::get().writes(6_u64))
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn remove_vote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `19968`
+		//  Measured:  `20035`
 		//  Estimated: `219984`
-		// Minimum execution time: 262_582_000 picoseconds.
-		Weight::from_parts(270_955_000, 219984)
+		// Minimum execution time: 275_109_000 picoseconds.
+		Weight::from_parts(281_315_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn remove_other_vote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `12675`
+		//  Measured:  `12742`
 		//  Estimated: `30706`
-		// Minimum execution time: 52_909_000 picoseconds.
-		Weight::from_parts(56_365_000, 30706)
+		// Minimum execution time: 49_629_000 picoseconds.
+		Weight::from_parts(51_300_000, 30706)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 1]`.
 	fn delegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `240 + r * (1627 ±0)`
+		//  Measured:  `306 + r * (1628 ±0)`
 		//  Estimated: `109992 + r * (109992 ±0)`
-		// Minimum execution time: 54_640_000 picoseconds.
-		Weight::from_parts(57_185_281, 109992)
-			// Standard Error: 193_362
-			.saturating_add(Weight::from_parts(44_897_418, 0).saturating_mul(r.into()))
+		// Minimum execution time: 45_776_000 picoseconds.
+		Weight::from_parts(47_917_822, 109992)
+			// Standard Error: 124_174
+			.saturating_add(Weight::from_parts(43_171_077, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
-			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:2 w:2)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 1]`.
 	fn undelegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `406 + r * (1376 ±0)`
+		//  Measured:  `472 + r * (1377 ±0)`
 		//  Estimated: `109992 + r * (109992 ±0)`
-		// Minimum execution time: 26_514_000 picoseconds.
-		Weight::from_parts(28_083_732, 109992)
-			// Standard Error: 104_905
-			.saturating_add(Weight::from_parts(40_722_467, 0).saturating_mul(r.into()))
+		// Minimum execution time: 23_600_000 picoseconds.
+		Weight::from_parts(25_001_426, 109992)
+			// Standard Error: 72_034
+			.saturating_add(Weight::from_parts(37_851_873, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
-			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 109992).saturating_mul(r.into()))
 	}
-	/// Storage: ConvictionVoting VotingFor (r:1 w:1)
-	/// Proof: ConvictionVoting VotingFor (max_values: None, max_size: Some(27241), added: 29716, mode: MaxEncodedLen)
-	/// Storage: ConvictionVoting ClassLocksFor (r:1 w:1)
-	/// Proof: ConvictionVoting ClassLocksFor (max_values: None, max_size: Some(59), added: 2534, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+	/// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+	/// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(59), added: 2534, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn unlock() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `11734`
+		//  Measured:  `11800`
 		//  Estimated: `30706`
-		// Minimum execution time: 71_140_000 picoseconds.
-		Weight::from_parts(77_388_000, 30706)
+		// Minimum execution time: 66_247_000 picoseconds.
+		Weight::from_parts(67_552_000, 30706)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
diff --git a/substrate/frame/core-fellowship/src/weights.rs b/substrate/frame/core-fellowship/src/weights.rs
index 8bbfd1a4dd8..fce1d3747a8 100644
--- a/substrate/frame/core-fellowship/src/weights.rs
+++ b/substrate/frame/core-fellowship/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_core_fellowship
+//! Autogenerated weights for `pallet_core_fellowship`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/core-fellowship/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/core-fellowship/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_core_fellowship.
+/// Weight functions needed for `pallet_core_fellowship`.
 pub trait WeightInfo {
 	fn set_params() -> Weight;
 	fn bump_offboard() -> Weight;
@@ -64,336 +63,344 @@ pub trait WeightInfo {
 	fn submit_evidence() -> Weight;
 }
 
-/// Weights for pallet_core_fellowship using the Substrate node and recommended hardware.
+/// Weights for `pallet_core_fellowship` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: CoreFellowship Params (r:0 w:1)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Params` (r:0 w:1)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
 	fn set_params() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_454_000 picoseconds.
-		Weight::from_parts(9_804_000, 0)
+		// Minimum execution time: 7_146_000 picoseconds.
+		Weight::from_parts(7_426_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:0)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn bump_offboard() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `16887`
+		//  Measured:  `17274`
 		//  Estimated: `19894`
-		// Minimum execution time: 58_489_000 picoseconds.
-		Weight::from_parts(60_202_000, 19894)
+		// Minimum execution time: 54_511_000 picoseconds.
+		Weight::from_parts(56_995_000, 19894)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:0)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn bump_demote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `16997`
+		//  Measured:  `17384`
 		//  Estimated: `19894`
-		// Minimum execution time: 60_605_000 picoseconds.
-		Weight::from_parts(63_957_000, 19894)
+		// Minimum execution time: 56_453_000 picoseconds.
+		Weight::from_parts(59_030_000, 19894)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn set_active() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `388`
 		//  Estimated: `3514`
-		// Minimum execution time: 17_816_000 picoseconds.
-		Weight::from_parts(18_524_000, 3514)
+		// Minimum execution time: 15_940_000 picoseconds.
+		Weight::from_parts(16_381_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn induct() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `146`
 		//  Estimated: `3514`
-		// Minimum execution time: 27_249_000 picoseconds.
-		Weight::from_parts(28_049_000, 3514)
+		// Minimum execution time: 24_193_000 picoseconds.
+		Weight::from_parts(24_963_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn promote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `16865`
 		//  Estimated: `19894`
-		// Minimum execution time: 56_642_000 picoseconds.
-		Weight::from_parts(59_353_000, 19894)
+		// Minimum execution time: 48_138_000 picoseconds.
+		Weight::from_parts(50_007_000, 19894)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:0 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:0 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn offboard() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `359`
+		//  Measured:  `293`
 		//  Estimated: `3514`
-		// Minimum execution time: 17_459_000 picoseconds.
-		Weight::from_parts(18_033_000, 3514)
+		// Minimum execution time: 15_225_000 picoseconds.
+		Weight::from_parts(15_730_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	fn import() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `313`
 		//  Estimated: `3514`
-		// Minimum execution time: 16_728_000 picoseconds.
-		Weight::from_parts(17_263_000, 3514)
+		// Minimum execution time: 14_507_000 picoseconds.
+		Weight::from_parts(14_935_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn approve() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `16843`
 		//  Estimated: `19894`
-		// Minimum execution time: 41_487_000 picoseconds.
-		Weight::from_parts(43_459_000, 19894)
+		// Minimum execution time: 34_050_000 picoseconds.
+		Weight::from_parts(36_323_000, 19894)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:0)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:0)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn submit_evidence() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `79`
 		//  Estimated: `19894`
-		// Minimum execution time: 26_033_000 picoseconds.
-		Weight::from_parts(26_612_000, 19894)
+		// Minimum execution time: 24_016_000 picoseconds.
+		Weight::from_parts(24_607_000, 19894)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: CoreFellowship Params (r:0 w:1)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Params` (r:0 w:1)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
 	fn set_params() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_454_000 picoseconds.
-		Weight::from_parts(9_804_000, 0)
+		// Minimum execution time: 7_146_000 picoseconds.
+		Weight::from_parts(7_426_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:0)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn bump_offboard() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `16887`
+		//  Measured:  `17274`
 		//  Estimated: `19894`
-		// Minimum execution time: 58_489_000 picoseconds.
-		Weight::from_parts(60_202_000, 19894)
+		// Minimum execution time: 54_511_000 picoseconds.
+		Weight::from_parts(56_995_000, 19894)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:0)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn bump_demote() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `16997`
+		//  Measured:  `17384`
 		//  Estimated: `19894`
-		// Minimum execution time: 60_605_000 picoseconds.
-		Weight::from_parts(63_957_000, 19894)
+		// Minimum execution time: 56_453_000 picoseconds.
+		Weight::from_parts(59_030_000, 19894)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn set_active() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `388`
 		//  Estimated: `3514`
-		// Minimum execution time: 17_816_000 picoseconds.
-		Weight::from_parts(18_524_000, 3514)
+		// Minimum execution time: 15_940_000 picoseconds.
+		Weight::from_parts(16_381_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn induct() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `146`
 		//  Estimated: `3514`
-		// Minimum execution time: 27_249_000 picoseconds.
-		Weight::from_parts(28_049_000, 3514)
+		// Minimum execution time: 24_193_000 picoseconds.
+		Weight::from_parts(24_963_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Params (r:1 w:0)
-	/// Proof: CoreFellowship Params (max_values: Some(1), max_size: Some(364), added: 859, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Params` (r:1 w:0)
+	/// Proof: `CoreFellowship::Params` (`max_values`: Some(1), `max_size`: Some(364), added: 859, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn promote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `16865`
 		//  Estimated: `19894`
-		// Minimum execution time: 56_642_000 picoseconds.
-		Weight::from_parts(59_353_000, 19894)
+		// Minimum execution time: 48_138_000 picoseconds.
+		Weight::from_parts(50_007_000, 19894)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:0 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:0 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn offboard() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `359`
+		//  Measured:  `293`
 		//  Estimated: `3514`
-		// Minimum execution time: 17_459_000 picoseconds.
-		Weight::from_parts(18_033_000, 3514)
+		// Minimum execution time: 15_225_000 picoseconds.
+		Weight::from_parts(15_730_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	fn import() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `313`
 		//  Estimated: `3514`
-		// Minimum execution time: 16_728_000 picoseconds.
-		Weight::from_parts(17_263_000, 3514)
+		// Minimum execution time: 14_507_000 picoseconds.
+		Weight::from_parts(14_935_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship Member (r:1 w:1)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:1 w:1)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn approve() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `16843`
 		//  Estimated: `19894`
-		// Minimum execution time: 41_487_000 picoseconds.
-		Weight::from_parts(43_459_000, 19894)
+		// Minimum execution time: 34_050_000 picoseconds.
+		Weight::from_parts(36_323_000, 19894)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: CoreFellowship Member (r:1 w:0)
-	/// Proof: CoreFellowship Member (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: CoreFellowship MemberEvidence (r:1 w:1)
-	/// Proof: CoreFellowship MemberEvidence (max_values: None, max_size: Some(16429), added: 18904, mode: MaxEncodedLen)
+	/// Storage: `CoreFellowship::Member` (r:1 w:0)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:1)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
 	fn submit_evidence() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `79`
 		//  Estimated: `19894`
-		// Minimum execution time: 26_033_000 picoseconds.
-		Weight::from_parts(26_612_000, 19894)
+		// Minimum execution time: 24_016_000 picoseconds.
+		Weight::from_parts(24_607_000, 19894)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/democracy/src/weights.rs b/substrate/frame/democracy/src/weights.rs
index 241f6c3cb38..d6097922a82 100644
--- a/substrate/frame/democracy/src/weights.rs
+++ b/substrate/frame/democracy/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_democracy
+//! Autogenerated weights for `pallet_democracy`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/democracy/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/democracy/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_democracy.
+/// Weight functions needed for `pallet_democracy`.
 pub trait WeightInfo {
 	fn propose() -> Weight;
 	fn second() -> Weight;
@@ -82,904 +81,916 @@ pub trait WeightInfo {
 	fn clear_referendum_metadata() -> Weight;
 }
 
-/// Weights for pallet_democracy using the Substrate node and recommended hardware.
+/// Weights for `pallet_democracy` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Democracy PublicPropCount (r:1 w:1)
-	/// Proof: Democracy PublicPropCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:0)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:0 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicPropCount` (r:1 w:1)
+	/// Proof: `Democracy::PublicPropCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:0)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:0 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
 	fn propose() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4801`
+		//  Measured:  `4834`
 		//  Estimated: `18187`
-		// Minimum execution time: 49_339_000 picoseconds.
-		Weight::from_parts(50_942_000, 18187)
+		// Minimum execution time: 39_930_000 picoseconds.
+		Weight::from_parts(41_746_000, 18187)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
 	fn second() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3556`
+		//  Measured:  `3589`
 		//  Estimated: `6695`
-		// Minimum execution time: 43_291_000 picoseconds.
-		Weight::from_parts(44_856_000, 6695)
+		// Minimum execution time: 36_490_000 picoseconds.
+		Weight::from_parts(37_615_000, 6695)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn vote_new() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3470`
+		//  Measured:  `3503`
 		//  Estimated: `7260`
-		// Minimum execution time: 61_890_000 picoseconds.
-		Weight::from_parts(63_626_000, 7260)
+		// Minimum execution time: 54_257_000 picoseconds.
+		Weight::from_parts(55_912_000, 7260)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn vote_existing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3492`
+		//  Measured:  `3525`
 		//  Estimated: `7260`
-		// Minimum execution time: 67_802_000 picoseconds.
-		Weight::from_parts(69_132_000, 7260)
+		// Minimum execution time: 56_878_000 picoseconds.
+		Weight::from_parts(58_796_000, 7260)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy Cancellations (r:1 w:1)
-	/// Proof: Democracy Cancellations (max_values: None, max_size: Some(33), added: 2508, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Cancellations` (r:1 w:1)
+	/// Proof: `Democracy::Cancellations` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn emergency_cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `366`
+		//  Measured:  `399`
 		//  Estimated: `3666`
-		// Minimum execution time: 25_757_000 picoseconds.
-		Weight::from_parts(27_226_000, 3666)
+		// Minimum execution time: 22_700_000 picoseconds.
+		Weight::from_parts(23_539_000, 3666)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:3 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:0 w:1)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:3 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:0 w:1)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
 	fn blacklist() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `5910`
+		//  Measured:  `5943`
 		//  Estimated: `18187`
-		// Minimum execution time: 113_060_000 picoseconds.
-		Weight::from_parts(114_813_000, 18187)
+		// Minimum execution time: 95_398_000 picoseconds.
+		Weight::from_parts(97_261_000, 18187)
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:0)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:0)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
 	fn external_propose() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3416`
+		//  Measured:  `3449`
 		//  Estimated: `6703`
-		// Minimum execution time: 13_413_000 picoseconds.
-		Weight::from_parts(13_794_000, 6703)
+		// Minimum execution time: 11_745_000 picoseconds.
+		Weight::from_parts(12_304_000, 6703)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:0 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:0 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
 	fn external_propose_majority() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_213_000 picoseconds.
-		Weight::from_parts(3_429_000, 0)
+		// Minimum execution time: 2_710_000 picoseconds.
+		Weight::from_parts(2_918_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:0 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:0 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
 	fn external_propose_default() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_280_000 picoseconds.
-		Weight::from_parts(3_389_000, 0)
+		// Minimum execution time: 2_664_000 picoseconds.
+		Weight::from_parts(2_776_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:1)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:2)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:0 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:2)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	fn fast_track() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `286`
+		//  Measured:  `319`
 		//  Estimated: `3518`
-		// Minimum execution time: 28_142_000 picoseconds.
-		Weight::from_parts(28_862_000, 3518)
+		// Minimum execution time: 22_585_000 picoseconds.
+		Weight::from_parts(23_689_000, 3518)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:1)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:1)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn veto_external() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3519`
+		//  Measured:  `3552`
 		//  Estimated: `6703`
-		// Minimum execution time: 32_395_000 picoseconds.
-		Weight::from_parts(33_617_000, 6703)
+		// Minimum execution time: 26_391_000 picoseconds.
+		Weight::from_parts(27_141_000, 6703)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn cancel_proposal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `5821`
+		//  Measured:  `5854`
 		//  Estimated: `18187`
-		// Minimum execution time: 92_255_000 picoseconds.
-		Weight::from_parts(93_704_000, 18187)
+		// Minimum execution time: 77_905_000 picoseconds.
+		Weight::from_parts(79_628_000, 18187)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:0 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	fn cancel_referendum() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `271`
+		//  Measured:  `304`
 		//  Estimated: `3518`
-		// Minimum execution time: 19_623_000 picoseconds.
-		Weight::from_parts(20_545_000, 3518)
+		// Minimum execution time: 15_735_000 picoseconds.
+		Weight::from_parts(16_525_000, 3518)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy LowestUnbaked (r:1 w:1)
-	/// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:0)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::LowestUnbaked` (r:1 w:1)
+	/// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn on_initialize_base(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `244 + r * (86 ±0)`
+		//  Measured:  `277 + r * (86 ±0)`
 		//  Estimated: `1489 + r * (2676 ±0)`
-		// Minimum execution time: 7_032_000 picoseconds.
-		Weight::from_parts(7_931_421, 1489)
-			// Standard Error: 7_395
-			.saturating_add(Weight::from_parts(3_236_964, 0).saturating_mul(r.into()))
+		// Minimum execution time: 5_274_000 picoseconds.
+		Weight::from_parts(6_162_399, 1489)
+			// Standard Error: 6_924
+			.saturating_add(Weight::from_parts(3_186_702, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy LowestUnbaked (r:1 w:1)
-	/// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:0)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy LastTabledWasExternal (r:1 w:0)
-	/// Proof: Democracy LastTabledWasExternal (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::LowestUnbaked` (r:1 w:1)
+	/// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::LastTabledWasExternal` (r:1 w:0)
+	/// Proof: `Democracy::LastTabledWasExternal` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn on_initialize_base_with_launch_period(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `244 + r * (86 ±0)`
+		//  Measured:  `277 + r * (86 ±0)`
 		//  Estimated: `18187 + r * (2676 ±0)`
-		// Minimum execution time: 10_524_000 picoseconds.
-		Weight::from_parts(10_369_064, 18187)
-			// Standard Error: 8_385
-			.saturating_add(Weight::from_parts(3_242_334, 0).saturating_mul(r.into()))
+		// Minimum execution time: 7_950_000 picoseconds.
+		Weight::from_parts(7_381_228, 18187)
+			// Standard Error: 6_650
+			.saturating_add(Weight::from_parts(3_198_515, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy VotingOf (r:3 w:3)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:99)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:3 w:3)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn delegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `830 + r * (108 ±0)`
+		//  Measured:  `863 + r * (108 ±0)`
 		//  Estimated: `19800 + r * (2676 ±0)`
-		// Minimum execution time: 46_106_000 picoseconds.
-		Weight::from_parts(48_936_654, 19800)
-			// Standard Error: 8_879
-			.saturating_add(Weight::from_parts(4_708_141, 0).saturating_mul(r.into()))
+		// Minimum execution time: 40_109_000 picoseconds.
+		Weight::from_parts(43_164_384, 19800)
+			// Standard Error: 7_267
+			.saturating_add(Weight::from_parts(4_161_526, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy VotingOf (r:2 w:2)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:99)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:2 w:2)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn undelegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `493 + r * (108 ±0)`
+		//  Measured:  `526 + r * (108 ±0)`
 		//  Estimated: `13530 + r * (2676 ±0)`
-		// Minimum execution time: 21_078_000 picoseconds.
-		Weight::from_parts(22_732_737, 13530)
-			// Standard Error: 7_969
-			.saturating_add(Weight::from_parts(4_626_458, 0).saturating_mul(r.into()))
+		// Minimum execution time: 17_466_000 picoseconds.
+		Weight::from_parts(18_004_456, 13530)
+			// Standard Error: 6_327
+			.saturating_add(Weight::from_parts(4_194_583, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy PublicProps (r:0 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:0 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
 	fn clear_public_proposals() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_229_000 picoseconds.
-		Weight::from_parts(3_415_000, 0)
+		// Minimum execution time: 2_824_000 picoseconds.
+		Weight::from_parts(2_948_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn unlock_remove(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `563`
+		//  Measured:  `596`
 		//  Estimated: `7260`
-		// Minimum execution time: 25_735_000 picoseconds.
-		Weight::from_parts(41_341_468, 7260)
-			// Standard Error: 3_727
-			.saturating_add(Weight::from_parts(94_755, 0).saturating_mul(r.into()))
+		// Minimum execution time: 23_373_000 picoseconds.
+		Weight::from_parts(34_306_582, 7260)
+			// Standard Error: 2_849
+			.saturating_add(Weight::from_parts(85_027, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn unlock_set(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `564 + r * (22 ±0)`
+		//  Measured:  `597 + r * (22 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 36_233_000 picoseconds.
-		Weight::from_parts(39_836_017, 7260)
-			// Standard Error: 1_791
-			.saturating_add(Weight::from_parts(132_158, 0).saturating_mul(r.into()))
+		// Minimum execution time: 31_574_000 picoseconds.
+		Weight::from_parts(33_906_658, 7260)
+			// Standard Error: 1_514
+			.saturating_add(Weight::from_parts(124_471, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 100]`.
 	fn remove_vote(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `728 + r * (26 ±0)`
+		//  Measured:  `761 + r * (26 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 16_081_000 picoseconds.
-		Weight::from_parts(19_624_101, 7260)
-			// Standard Error: 1_639
-			.saturating_add(Weight::from_parts(133_630, 0).saturating_mul(r.into()))
+		// Minimum execution time: 15_204_000 picoseconds.
+		Weight::from_parts(18_405_879, 7260)
+			// Standard Error: 1_851
+			.saturating_add(Weight::from_parts(119_018, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 100]`.
 	fn remove_other_vote(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `728 + r * (26 ±0)`
+		//  Measured:  `761 + r * (26 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 15_634_000 picoseconds.
-		Weight::from_parts(19_573_407, 7260)
-			// Standard Error: 1_790
-			.saturating_add(Weight::from_parts(139_707, 0).saturating_mul(r.into()))
+		// Minimum execution time: 15_120_000 picoseconds.
+		Weight::from_parts(18_282_222, 7260)
+			// Standard Error: 1_669
+			.saturating_add(Weight::from_parts(127_649, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_external_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `356`
+		//  Measured:  `456`
 		//  Estimated: `3556`
-		// Minimum execution time: 18_344_000 picoseconds.
-		Weight::from_parts(18_727_000, 3556)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 17_351_000 picoseconds.
+		Weight::from_parts(17_964_000, 3556)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_external_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `286`
+		//  Measured:  `319`
 		//  Estimated: `3518`
-		// Minimum execution time: 16_497_000 picoseconds.
-		Weight::from_parts(16_892_000, 3518)
+		// Minimum execution time: 13_669_000 picoseconds.
+		Weight::from_parts(14_410_000, 3518)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_proposal_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4888`
+		//  Measured:  `4988`
 		//  Estimated: `18187`
-		// Minimum execution time: 39_517_000 picoseconds.
-		Weight::from_parts(40_632_000, 18187)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 39_162_000 picoseconds.
+		Weight::from_parts(40_109_000, 18187)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_proposal_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4822`
+		//  Measured:  `4855`
 		//  Estimated: `18187`
-		// Minimum execution time: 37_108_000 picoseconds.
-		Weight::from_parts(37_599_000, 18187)
+		// Minimum execution time: 34_141_000 picoseconds.
+		Weight::from_parts(34_732_000, 18187)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_referendum_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 13_997_000 picoseconds.
-		Weight::from_parts(14_298_000, 3556)
-			.saturating_add(T::DbWeight::get().reads(1_u64))
+		// Minimum execution time: 13_413_000 picoseconds.
+		Weight::from_parts(14_039_000, 3556)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_referendum_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `302`
+		//  Measured:  `335`
 		//  Estimated: `3666`
-		// Minimum execution time: 18_122_000 picoseconds.
-		Weight::from_parts(18_655_000, 3666)
+		// Minimum execution time: 16_010_000 picoseconds.
+		Weight::from_parts(16_474_000, 3666)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Democracy PublicPropCount (r:1 w:1)
-	/// Proof: Democracy PublicPropCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:0)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:0 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicPropCount` (r:1 w:1)
+	/// Proof: `Democracy::PublicPropCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:0)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:0 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
 	fn propose() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4801`
+		//  Measured:  `4834`
 		//  Estimated: `18187`
-		// Minimum execution time: 49_339_000 picoseconds.
-		Weight::from_parts(50_942_000, 18187)
+		// Minimum execution time: 39_930_000 picoseconds.
+		Weight::from_parts(41_746_000, 18187)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
 	fn second() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3556`
+		//  Measured:  `3589`
 		//  Estimated: `6695`
-		// Minimum execution time: 43_291_000 picoseconds.
-		Weight::from_parts(44_856_000, 6695)
+		// Minimum execution time: 36_490_000 picoseconds.
+		Weight::from_parts(37_615_000, 6695)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn vote_new() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3470`
+		//  Measured:  `3503`
 		//  Estimated: `7260`
-		// Minimum execution time: 61_890_000 picoseconds.
-		Weight::from_parts(63_626_000, 7260)
+		// Minimum execution time: 54_257_000 picoseconds.
+		Weight::from_parts(55_912_000, 7260)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn vote_existing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3492`
+		//  Measured:  `3525`
 		//  Estimated: `7260`
-		// Minimum execution time: 67_802_000 picoseconds.
-		Weight::from_parts(69_132_000, 7260)
+		// Minimum execution time: 56_878_000 picoseconds.
+		Weight::from_parts(58_796_000, 7260)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy Cancellations (r:1 w:1)
-	/// Proof: Democracy Cancellations (max_values: None, max_size: Some(33), added: 2508, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Cancellations` (r:1 w:1)
+	/// Proof: `Democracy::Cancellations` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn emergency_cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `366`
+		//  Measured:  `399`
 		//  Estimated: `3666`
-		// Minimum execution time: 25_757_000 picoseconds.
-		Weight::from_parts(27_226_000, 3666)
+		// Minimum execution time: 22_700_000 picoseconds.
+		Weight::from_parts(23_539_000, 3666)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:3 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:0 w:1)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:3 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:0 w:1)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
 	fn blacklist() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `5910`
+		//  Measured:  `5943`
 		//  Estimated: `18187`
-		// Minimum execution time: 113_060_000 picoseconds.
-		Weight::from_parts(114_813_000, 18187)
+		// Minimum execution time: 95_398_000 picoseconds.
+		Weight::from_parts(97_261_000, 18187)
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:0)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:0)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
 	fn external_propose() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3416`
+		//  Measured:  `3449`
 		//  Estimated: `6703`
-		// Minimum execution time: 13_413_000 picoseconds.
-		Weight::from_parts(13_794_000, 6703)
+		// Minimum execution time: 11_745_000 picoseconds.
+		Weight::from_parts(12_304_000, 6703)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:0 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:0 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
 	fn external_propose_majority() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_213_000 picoseconds.
-		Weight::from_parts(3_429_000, 0)
+		// Minimum execution time: 2_710_000 picoseconds.
+		Weight::from_parts(2_918_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:0 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:0 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
 	fn external_propose_default() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_280_000 picoseconds.
-		Weight::from_parts(3_389_000, 0)
+		// Minimum execution time: 2_664_000 picoseconds.
+		Weight::from_parts(2_776_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:1)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:2)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:0 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:2)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	fn fast_track() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `286`
+		//  Measured:  `319`
 		//  Estimated: `3518`
-		// Minimum execution time: 28_142_000 picoseconds.
-		Weight::from_parts(28_862_000, 3518)
+		// Minimum execution time: 22_585_000 picoseconds.
+		Weight::from_parts(23_689_000, 3518)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:1)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy Blacklist (r:1 w:1)
-	/// Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:1)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::Blacklist` (r:1 w:1)
+	/// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn veto_external() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3519`
+		//  Measured:  `3552`
 		//  Estimated: `6703`
-		// Minimum execution time: 32_395_000 picoseconds.
-		Weight::from_parts(33_617_000, 6703)
+		// Minimum execution time: 26_391_000 picoseconds.
+		Weight::from_parts(27_141_000, 6703)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy DepositOf (r:1 w:1)
-	/// Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::DepositOf` (r:1 w:1)
+	/// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn cancel_proposal() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `5821`
+		//  Measured:  `5854`
 		//  Estimated: `18187`
-		// Minimum execution time: 92_255_000 picoseconds.
-		Weight::from_parts(93_704_000, 18187)
+		// Minimum execution time: 77_905_000 picoseconds.
+		Weight::from_parts(79_628_000, 18187)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:0 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	fn cancel_referendum() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `271`
+		//  Measured:  `304`
 		//  Estimated: `3518`
-		// Minimum execution time: 19_623_000 picoseconds.
-		Weight::from_parts(20_545_000, 3518)
+		// Minimum execution time: 15_735_000 picoseconds.
+		Weight::from_parts(16_525_000, 3518)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy LowestUnbaked (r:1 w:1)
-	/// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:0)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::LowestUnbaked` (r:1 w:1)
+	/// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn on_initialize_base(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `244 + r * (86 ±0)`
+		//  Measured:  `277 + r * (86 ±0)`
 		//  Estimated: `1489 + r * (2676 ±0)`
-		// Minimum execution time: 7_032_000 picoseconds.
-		Weight::from_parts(7_931_421, 1489)
-			// Standard Error: 7_395
-			.saturating_add(Weight::from_parts(3_236_964, 0).saturating_mul(r.into()))
+		// Minimum execution time: 5_274_000 picoseconds.
+		Weight::from_parts(6_162_399, 1489)
+			// Standard Error: 6_924
+			.saturating_add(Weight::from_parts(3_186_702, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy LowestUnbaked (r:1 w:1)
-	/// Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumCount (r:1 w:0)
-	/// Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Democracy LastTabledWasExternal (r:1 w:0)
-	/// Proof: Democracy LastTabledWasExternal (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::LowestUnbaked` (r:1 w:1)
+	/// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumCount` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::LastTabledWasExternal` (r:1 w:0)
+	/// Proof: `Democracy::LastTabledWasExternal` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn on_initialize_base_with_launch_period(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `244 + r * (86 ±0)`
+		//  Measured:  `277 + r * (86 ±0)`
 		//  Estimated: `18187 + r * (2676 ±0)`
-		// Minimum execution time: 10_524_000 picoseconds.
-		Weight::from_parts(10_369_064, 18187)
-			// Standard Error: 8_385
-			.saturating_add(Weight::from_parts(3_242_334, 0).saturating_mul(r.into()))
+		// Minimum execution time: 7_950_000 picoseconds.
+		Weight::from_parts(7_381_228, 18187)
+			// Standard Error: 6_650
+			.saturating_add(Weight::from_parts(3_198_515, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy VotingOf (r:3 w:3)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:99)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:3 w:3)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn delegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `830 + r * (108 ±0)`
+		//  Measured:  `863 + r * (108 ±0)`
 		//  Estimated: `19800 + r * (2676 ±0)`
-		// Minimum execution time: 46_106_000 picoseconds.
-		Weight::from_parts(48_936_654, 19800)
-			// Standard Error: 8_879
-			.saturating_add(Weight::from_parts(4_708_141, 0).saturating_mul(r.into()))
+		// Minimum execution time: 40_109_000 picoseconds.
+		Weight::from_parts(43_164_384, 19800)
+			// Standard Error: 7_267
+			.saturating_add(Weight::from_parts(4_161_526, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy VotingOf (r:2 w:2)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Democracy ReferendumInfoOf (r:99 w:99)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:2 w:2)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn undelegate(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `493 + r * (108 ±0)`
+		//  Measured:  `526 + r * (108 ±0)`
 		//  Estimated: `13530 + r * (2676 ±0)`
-		// Minimum execution time: 21_078_000 picoseconds.
-		Weight::from_parts(22_732_737, 13530)
-			// Standard Error: 7_969
-			.saturating_add(Weight::from_parts(4_626_458, 0).saturating_mul(r.into()))
+		// Minimum execution time: 17_466_000 picoseconds.
+		Weight::from_parts(18_004_456, 13530)
+			// Standard Error: 6_327
+			.saturating_add(Weight::from_parts(4_194_583, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(r.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into()))
 	}
-	/// Storage: Democracy PublicProps (r:0 w:1)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:0 w:1)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
 	fn clear_public_proposals() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_229_000 picoseconds.
-		Weight::from_parts(3_415_000, 0)
+		// Minimum execution time: 2_824_000 picoseconds.
+		Weight::from_parts(2_948_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn unlock_remove(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `563`
+		//  Measured:  `596`
 		//  Estimated: `7260`
-		// Minimum execution time: 25_735_000 picoseconds.
-		Weight::from_parts(41_341_468, 7260)
-			// Standard Error: 3_727
-			.saturating_add(Weight::from_parts(94_755, 0).saturating_mul(r.into()))
+		// Minimum execution time: 23_373_000 picoseconds.
+		Weight::from_parts(34_306_582, 7260)
+			// Standard Error: 2_849
+			.saturating_add(Weight::from_parts(85_027, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 99]`.
 	fn unlock_set(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `564 + r * (22 ±0)`
+		//  Measured:  `597 + r * (22 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 36_233_000 picoseconds.
-		Weight::from_parts(39_836_017, 7260)
-			// Standard Error: 1_791
-			.saturating_add(Weight::from_parts(132_158, 0).saturating_mul(r.into()))
+		// Minimum execution time: 31_574_000 picoseconds.
+		Weight::from_parts(33_906_658, 7260)
+			// Standard Error: 1_514
+			.saturating_add(Weight::from_parts(124_471, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 100]`.
 	fn remove_vote(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `728 + r * (26 ±0)`
+		//  Measured:  `761 + r * (26 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 16_081_000 picoseconds.
-		Weight::from_parts(19_624_101, 7260)
-			// Standard Error: 1_639
-			.saturating_add(Weight::from_parts(133_630, 0).saturating_mul(r.into()))
+		// Minimum execution time: 15_204_000 picoseconds.
+		Weight::from_parts(18_405_879, 7260)
+			// Standard Error: 1_851
+			.saturating_add(Weight::from_parts(119_018, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:1)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy VotingOf (r:1 w:1)
-	/// Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::VotingOf` (r:1 w:1)
+	/// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 100]`.
 	fn remove_other_vote(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `728 + r * (26 ±0)`
+		//  Measured:  `761 + r * (26 ±0)`
 		//  Estimated: `7260`
-		// Minimum execution time: 15_634_000 picoseconds.
-		Weight::from_parts(19_573_407, 7260)
-			// Standard Error: 1_790
-			.saturating_add(Weight::from_parts(139_707, 0).saturating_mul(r.into()))
+		// Minimum execution time: 15_120_000 picoseconds.
+		Weight::from_parts(18_282_222, 7260)
+			// Standard Error: 1_669
+			.saturating_add(Weight::from_parts(127_649, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_external_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `356`
+		//  Measured:  `456`
 		//  Estimated: `3556`
-		// Minimum execution time: 18_344_000 picoseconds.
-		Weight::from_parts(18_727_000, 3556)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 17_351_000 picoseconds.
+		Weight::from_parts(17_964_000, 3556)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy NextExternal (r:1 w:0)
-	/// Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::NextExternal` (r:1 w:0)
+	/// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_external_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `286`
+		//  Measured:  `319`
 		//  Estimated: `3518`
-		// Minimum execution time: 16_497_000 picoseconds.
-		Weight::from_parts(16_892_000, 3518)
+		// Minimum execution time: 13_669_000 picoseconds.
+		Weight::from_parts(14_410_000, 3518)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_proposal_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4888`
+		//  Measured:  `4988`
 		//  Estimated: `18187`
-		// Minimum execution time: 39_517_000 picoseconds.
-		Weight::from_parts(40_632_000, 18187)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 39_162_000 picoseconds.
+		Weight::from_parts(40_109_000, 18187)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy PublicProps (r:1 w:0)
-	/// Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::PublicProps` (r:1 w:0)
+	/// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_proposal_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `4822`
+		//  Measured:  `4855`
 		//  Estimated: `18187`
-		// Minimum execution time: 37_108_000 picoseconds.
-		Weight::from_parts(37_599_000, 18187)
+		// Minimum execution time: 34_141_000 picoseconds.
+		Weight::from_parts(34_732_000, 18187)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:0 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:0 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn set_referendum_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 13_997_000 picoseconds.
-		Weight::from_parts(14_298_000, 3556)
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
+		// Minimum execution time: 13_413_000 picoseconds.
+		Weight::from_parts(14_039_000, 3556)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Democracy ReferendumInfoOf (r:1 w:0)
-	/// Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen)
-	/// Storage: Democracy MetadataOf (r:1 w:1)
-	/// Proof: Democracy MetadataOf (max_values: None, max_size: Some(53), added: 2528, mode: MaxEncodedLen)
+	/// Storage: `Democracy::ReferendumInfoOf` (r:1 w:0)
+	/// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`)
+	/// Storage: `Democracy::MetadataOf` (r:1 w:1)
+	/// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`)
 	fn clear_referendum_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `302`
+		//  Measured:  `335`
 		//  Estimated: `3666`
-		// Minimum execution time: 18_122_000 picoseconds.
-		Weight::from_parts(18_655_000, 3666)
+		// Minimum execution time: 16_010_000 picoseconds.
+		Weight::from_parts(16_474_000, 3666)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/election-provider-multi-phase/src/mock.rs b/substrate/frame/election-provider-multi-phase/src/mock.rs
index 18dcd7061c1..312dc557090 100644
--- a/substrate/frame/election-provider-multi-phase/src/mock.rs
+++ b/substrate/frame/election-provider-multi-phase/src/mock.rs
@@ -441,7 +441,7 @@ where
 	type Extrinsic = Extrinsic;
 }
 
-pub type Extrinsic = sp_runtime::testing::TestXt<RuntimeCall, ()>;
+pub type Extrinsic = sp_runtime::generic::UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 
 parameter_types! {
 	pub MaxNominations: u32 = <TestNposSolution as NposSolution>::LIMIT as u32;
diff --git a/substrate/frame/election-provider-multi-phase/src/unsigned.rs b/substrate/frame/election-provider-multi-phase/src/unsigned.rs
index 94348181334..94cfd059b6c 100644
--- a/substrate/frame/election-provider-multi-phase/src/unsigned.rs
+++ b/substrate/frame/election-provider-multi-phase/src/unsigned.rs
@@ -1813,7 +1813,7 @@ mod tests {
 
 			let encoded = pool.read().transactions[0].clone();
 			let extrinsic: Extrinsic = codec::Decode::decode(&mut &*encoded).unwrap();
-			let call = extrinsic.call;
+			let call = extrinsic.function;
 			assert!(matches!(call, RuntimeCall::MultiPhase(Call::submit_unsigned { .. })));
 		})
 	}
@@ -1830,7 +1830,7 @@ mod tests {
 
 			let encoded = pool.read().transactions[0].clone();
 			let extrinsic = Extrinsic::decode(&mut &*encoded).unwrap();
-			let call = match extrinsic.call {
+			let call = match extrinsic.function {
 				RuntimeCall::MultiPhase(call @ Call::submit_unsigned { .. }) => call,
 				_ => panic!("bad call: unexpected submission"),
 			};
diff --git a/substrate/frame/election-provider-multi-phase/src/weights.rs b/substrate/frame/election-provider-multi-phase/src/weights.rs
index be578fac8c4..ed3e942716e 100644
--- a/substrate/frame/election-provider-multi-phase/src/weights.rs
+++ b/substrate/frame/election-provider-multi-phase/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_election_provider_multi_phase
+//! Autogenerated weights for `pallet_election_provider_multi_phase`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/election-provider-multi-phase/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/election-provider-multi-phase/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_election_provider_multi_phase.
+/// Weight functions needed for `pallet_election_provider_multi_phase`.
 pub trait WeightInfo {
 	fn on_initialize_nothing() -> Weight;
 	fn on_initialize_open_signed() -> Weight;
@@ -64,169 +63,171 @@ pub trait WeightInfo {
 	fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight;
 }
 
-/// Weights for pallet_election_provider_multi_phase using the Substrate node and recommended hardware.
+/// Weights for `pallet_election_provider_multi_phase` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking CurrentPlannedSession (r:1 w:0)
-	/// Proof: Staking CurrentPlannedSession (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ErasStartSessionIndex (r:1 w:0)
-	/// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: Babe EpochIndex (r:1 w:0)
-	/// Proof: Babe EpochIndex (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe GenesisSlot (r:1 w:0)
-	/// Proof: Babe GenesisSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe CurrentSlot (r:1 w:0)
-	/// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Staking ForceEra (r:1 w:0)
-	/// Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CurrentPlannedSession` (r:1 w:0)
+	/// Proof: `Staking::CurrentPlannedSession` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ErasStartSessionIndex` (r:1 w:0)
+	/// Proof: `Staking::ErasStartSessionIndex` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::EpochIndex` (r:1 w:0)
+	/// Proof: `Babe::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::GenesisSlot` (r:1 w:0)
+	/// Proof: `Babe::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::CurrentSlot` (r:1 w:0)
+	/// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ForceEra` (r:1 w:0)
+	/// Proof: `Staking::ForceEra` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_nothing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1028`
+		//  Measured:  `1061`
 		//  Estimated: `3481`
-		// Minimum execution time: 22_089_000 picoseconds.
-		Weight::from_parts(22_677_000, 3481)
+		// Minimum execution time: 19_340_000 picoseconds.
+		Weight::from_parts(19_886_000, 3481)
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_open_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `148`
 		//  Estimated: `1633`
-		// Minimum execution time: 11_986_000 picoseconds.
-		Weight::from_parts(12_445_000, 1633)
+		// Minimum execution time: 8_067_000 picoseconds.
+		Weight::from_parts(8_508_000, 1633)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_open_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `148`
 		//  Estimated: `1633`
-		// Minimum execution time: 12_988_000 picoseconds.
-		Weight::from_parts(13_281_000, 1633)
+		// Minimum execution time: 8_810_000 picoseconds.
+		Weight::from_parts(9_061_000, 1633)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn finalize_signed_phase_accept_solution() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 32_659_000 picoseconds.
-		Weight::from_parts(33_281_000, 3593)
+		// Minimum execution time: 24_339_000 picoseconds.
+		Weight::from_parts(25_322_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn finalize_signed_phase_reject_solution() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 22_471_000 picoseconds.
-		Weight::from_parts(23_046_000, 3593)
+		// Minimum execution time: 16_635_000 picoseconds.
+		Weight::from_parts(17_497_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 262_360_000 picoseconds.
-		Weight::from_parts(279_313_000, 0)
-			// Standard Error: 2_384
-			.saturating_add(Weight::from_parts(176_415, 0).saturating_mul(v.into()))
+		// Minimum execution time: 170_730_000 picoseconds.
+		Weight::from_parts(175_009_000, 0)
+			// Standard Error: 2_010
+			.saturating_add(Weight::from_parts(224_974, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `a` is `[500, 800]`.
 	/// The range of component `d` is `[200, 400]`.
 	fn elect_queued(a: u32, d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `371 + a * (768 ±0) + d * (48 ±0)`
 		//  Estimated: `3923 + a * (768 ±0) + d * (49 ±0)`
-		// Minimum execution time: 301_283_000 picoseconds.
-		Weight::from_parts(324_586_000, 3923)
-			// Standard Error: 4_763
-			.saturating_add(Weight::from_parts(279_812, 0).saturating_mul(a.into()))
+		// Minimum execution time: 280_705_000 picoseconds.
+		Weight::from_parts(303_018_000, 3923)
+			// Standard Error: 4_633
+			.saturating_add(Weight::from_parts(307_274, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(8_u64))
 			.saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into()))
 			.saturating_add(Weight::from_parts(0, 49).saturating_mul(d.into()))
 	}
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TransactionPayment NextFeeMultiplier (r:1 w:0)
-	/// Proof: TransactionPayment NextFeeMultiplier (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `2412`
-		// Minimum execution time: 52_276_000 picoseconds.
-		Weight::from_parts(53_846_000, 2412)
-			.saturating_add(T::DbWeight::get().reads(5_u64))
+		// Minimum execution time: 43_405_000 picoseconds.
+		Weight::from_parts(45_734_000, 2412)
+			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	/// The range of component `a` is `[500, 800]`.
@@ -235,25 +236,25 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `253 + t * (32 ±0) + v * (553 ±0)`
 		//  Estimated: `1738 + t * (32 ±0) + v * (553 ±0)`
-		// Minimum execution time: 5_448_459_000 picoseconds.
-		Weight::from_parts(5_525_622_000, 1738)
-			// Standard Error: 21_478
-			.saturating_add(Weight::from_parts(256_345, 0).saturating_mul(v.into()))
-			// Standard Error: 63_648
-			.saturating_add(Weight::from_parts(5_103_224, 0).saturating_mul(a.into()))
+		// Minimum execution time: 5_059_092_000 picoseconds.
+		Weight::from_parts(5_263_076_000, 1738)
+			// Standard Error: 17_317
+			.saturating_add(Weight::from_parts(384_051, 0).saturating_mul(v.into()))
+			// Standard Error: 51_319
+			.saturating_add(Weight::from_parts(4_095_128, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into()))
 			.saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into()))
 	}
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	/// The range of component `a` is `[500, 800]`.
@@ -262,180 +263,182 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `228 + t * (32 ±0) + v * (553 ±0)`
 		//  Estimated: `1713 + t * (32 ±0) + v * (553 ±0)`
-		// Minimum execution time: 4_724_399_000 picoseconds.
-		Weight::from_parts(4_886_472_000, 1713)
-			// Standard Error: 15_220
-			.saturating_add(Weight::from_parts(365_569, 0).saturating_mul(v.into()))
-			// Standard Error: 45_104
-			.saturating_add(Weight::from_parts(3_176_675, 0).saturating_mul(a.into()))
+		// Minimum execution time: 4_426_416_000 picoseconds.
+		Weight::from_parts(4_466_923_000, 1713)
+			// Standard Error: 15_415
+			.saturating_add(Weight::from_parts(334_047, 0).saturating_mul(v.into()))
+			// Standard Error: 45_682
+			.saturating_add(Weight::from_parts(3_097_318, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into()))
 			.saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking CurrentPlannedSession (r:1 w:0)
-	/// Proof: Staking CurrentPlannedSession (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ErasStartSessionIndex (r:1 w:0)
-	/// Proof: Staking ErasStartSessionIndex (max_values: None, max_size: Some(16), added: 2491, mode: MaxEncodedLen)
-	/// Storage: Babe EpochIndex (r:1 w:0)
-	/// Proof: Babe EpochIndex (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe GenesisSlot (r:1 w:0)
-	/// Proof: Babe GenesisSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe CurrentSlot (r:1 w:0)
-	/// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Staking ForceEra (r:1 w:0)
-	/// Proof: Staking ForceEra (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CurrentPlannedSession` (r:1 w:0)
+	/// Proof: `Staking::CurrentPlannedSession` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ErasStartSessionIndex` (r:1 w:0)
+	/// Proof: `Staking::ErasStartSessionIndex` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::EpochIndex` (r:1 w:0)
+	/// Proof: `Babe::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::GenesisSlot` (r:1 w:0)
+	/// Proof: `Babe::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::CurrentSlot` (r:1 w:0)
+	/// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ForceEra` (r:1 w:0)
+	/// Proof: `Staking::ForceEra` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_nothing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1028`
+		//  Measured:  `1061`
 		//  Estimated: `3481`
-		// Minimum execution time: 22_089_000 picoseconds.
-		Weight::from_parts(22_677_000, 3481)
+		// Minimum execution time: 19_340_000 picoseconds.
+		Weight::from_parts(19_886_000, 3481)
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_open_signed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `148`
 		//  Estimated: `1633`
-		// Minimum execution time: 11_986_000 picoseconds.
-		Weight::from_parts(12_445_000, 1633)
+		// Minimum execution time: 8_067_000 picoseconds.
+		Weight::from_parts(8_508_000, 1633)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn on_initialize_open_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `148`
 		//  Estimated: `1633`
-		// Minimum execution time: 12_988_000 picoseconds.
-		Weight::from_parts(13_281_000, 1633)
+		// Minimum execution time: 8_810_000 picoseconds.
+		Weight::from_parts(9_061_000, 1633)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn finalize_signed_phase_accept_solution() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 32_659_000 picoseconds.
-		Weight::from_parts(33_281_000, 3593)
+		// Minimum execution time: 24_339_000 picoseconds.
+		Weight::from_parts(25_322_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn finalize_signed_phase_reject_solution() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `174`
 		//  Estimated: `3593`
-		// Minimum execution time: 22_471_000 picoseconds.
-		Weight::from_parts(23_046_000, 3593)
+		// Minimum execution time: 16_635_000 picoseconds.
+		Weight::from_parts(17_497_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	fn create_snapshot_internal(v: u32, _t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 262_360_000 picoseconds.
-		Weight::from_parts(279_313_000, 0)
-			// Standard Error: 2_384
-			.saturating_add(Weight::from_parts(176_415, 0).saturating_mul(v.into()))
+		// Minimum execution time: 170_730_000 picoseconds.
+		Weight::from_parts(175_009_000, 0)
+			// Standard Error: 2_010
+			.saturating_add(Weight::from_parts(224_974, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `a` is `[500, 800]`.
 	/// The range of component `d` is `[200, 400]`.
 	fn elect_queued(a: u32, d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `371 + a * (768 ±0) + d * (48 ±0)`
 		//  Estimated: `3923 + a * (768 ±0) + d * (49 ±0)`
-		// Minimum execution time: 301_283_000 picoseconds.
-		Weight::from_parts(324_586_000, 3923)
-			// Standard Error: 4_763
-			.saturating_add(Weight::from_parts(279_812, 0).saturating_mul(a.into()))
+		// Minimum execution time: 280_705_000 picoseconds.
+		Weight::from_parts(303_018_000, 3923)
+			// Standard Error: 4_633
+			.saturating_add(Weight::from_parts(307_274, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(8_u64))
 			.saturating_add(Weight::from_parts(0, 768).saturating_mul(a.into()))
 			.saturating_add(Weight::from_parts(0, 49).saturating_mul(d.into()))
 	}
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TransactionPayment NextFeeMultiplier (r:1 w:0)
-	/// Proof: TransactionPayment NextFeeMultiplier (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionIndices (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionIndices (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionNextIndex (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionNextIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SignedSubmissionsMap (r:0 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase SignedSubmissionsMap (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionIndices` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionIndices` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionNextIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::SignedSubmissionsMap` (r:0 w:1)
+	/// Proof: `ElectionProviderMultiPhase::SignedSubmissionsMap` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `2412`
-		// Minimum execution time: 52_276_000 picoseconds.
-		Weight::from_parts(53_846_000, 2412)
-			.saturating_add(RocksDbWeight::get().reads(5_u64))
+		// Minimum execution time: 43_405_000 picoseconds.
+		Weight::from_parts(45_734_000, 2412)
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase QueuedSolution (r:1 w:1)
-	/// Proof Skipped: ElectionProviderMultiPhase QueuedSolution (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase SnapshotMetadata (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase SnapshotMetadata (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::QueuedSolution` (r:1 w:1)
+	/// Proof: `ElectionProviderMultiPhase::QueuedSolution` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::SnapshotMetadata` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::SnapshotMetadata` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	/// The range of component `a` is `[500, 800]`.
@@ -444,25 +447,25 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `253 + t * (32 ±0) + v * (553 ±0)`
 		//  Estimated: `1738 + t * (32 ±0) + v * (553 ±0)`
-		// Minimum execution time: 5_448_459_000 picoseconds.
-		Weight::from_parts(5_525_622_000, 1738)
-			// Standard Error: 21_478
-			.saturating_add(Weight::from_parts(256_345, 0).saturating_mul(v.into()))
-			// Standard Error: 63_648
-			.saturating_add(Weight::from_parts(5_103_224, 0).saturating_mul(a.into()))
+		// Minimum execution time: 5_059_092_000 picoseconds.
+		Weight::from_parts(5_263_076_000, 1738)
+			// Standard Error: 17_317
+			.saturating_add(Weight::from_parts(384_051, 0).saturating_mul(v.into()))
+			// Standard Error: 51_319
+			.saturating_add(Weight::from_parts(4_095_128, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into()))
 			.saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into()))
 	}
-	/// Storage: ElectionProviderMultiPhase DesiredTargets (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase DesiredTargets (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Snapshot (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Snapshot (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase Round (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase Round (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ElectionProviderMultiPhase MinimumUntrustedScore (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase MinimumUntrustedScore (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `ElectionProviderMultiPhase::DesiredTargets` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::DesiredTargets` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Snapshot` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Snapshot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::Round` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::Round` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ElectionProviderMultiPhase::MinimumUntrustedScore` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::MinimumUntrustedScore` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1000, 2000]`.
 	/// The range of component `t` is `[500, 1000]`.
 	/// The range of component `a` is `[500, 800]`.
@@ -471,12 +474,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `228 + t * (32 ±0) + v * (553 ±0)`
 		//  Estimated: `1713 + t * (32 ±0) + v * (553 ±0)`
-		// Minimum execution time: 4_724_399_000 picoseconds.
-		Weight::from_parts(4_886_472_000, 1713)
-			// Standard Error: 15_220
-			.saturating_add(Weight::from_parts(365_569, 0).saturating_mul(v.into()))
-			// Standard Error: 45_104
-			.saturating_add(Weight::from_parts(3_176_675, 0).saturating_mul(a.into()))
+		// Minimum execution time: 4_426_416_000 picoseconds.
+		Weight::from_parts(4_466_923_000, 1713)
+			// Standard Error: 15_415
+			.saturating_add(Weight::from_parts(334_047, 0).saturating_mul(v.into()))
+			// Standard Error: 45_682
+			.saturating_add(Weight::from_parts(3_097_318, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(t.into()))
 			.saturating_add(Weight::from_parts(0, 553).saturating_mul(v.into()))
diff --git a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs
index 882b894bb22..7fade251e6d 100644
--- a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs
+++ b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs
@@ -62,7 +62,7 @@ pub const INIT_TIMESTAMP: BlockNumber = 30_000;
 pub const BLOCK_TIME: BlockNumber = 1000;
 
 type Block = frame_system::mocking::MockBlockU32<Runtime>;
-type Extrinsic = testing::TestXt<RuntimeCall, ()>;
+type Extrinsic = sp_runtime::generic::UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 
 frame_support::construct_runtime!(
 	pub enum Runtime {
@@ -699,7 +699,7 @@ pub fn roll_to_with_ocw(n: BlockNumber, pool: Arc<RwLock<PoolState>>, delay_solu
 			for encoded in &pool.read().transactions {
 				let extrinsic = Extrinsic::decode(&mut &encoded[..]).unwrap();
 
-				let _ = match extrinsic.call {
+				let _ = match extrinsic.function {
 					RuntimeCall::ElectionProviderMultiPhase(
 						call @ Call::submit_unsigned { .. },
 					) => {
diff --git a/substrate/frame/elections-phragmen/src/lib.rs b/substrate/frame/elections-phragmen/src/lib.rs
index 308f2cdc1aa..e08412a6e87 100644
--- a/substrate/frame/elections-phragmen/src/lib.rs
+++ b/substrate/frame/elections-phragmen/src/lib.rs
@@ -1422,7 +1422,7 @@ mod tests {
 
 	pub type Block = sp_runtime::generic::Block<Header, UncheckedExtrinsic>;
 	pub type UncheckedExtrinsic =
-		sp_runtime::generic::UncheckedExtrinsic<u32, u64, RuntimeCall, ()>;
+		sp_runtime::generic::UncheckedExtrinsic<u32, RuntimeCall, u64, ()>;
 
 	frame_support::construct_runtime!(
 		pub enum Test
diff --git a/substrate/frame/elections-phragmen/src/weights.rs b/substrate/frame/elections-phragmen/src/weights.rs
index b7ed13dae9f..cd67918e85b 100644
--- a/substrate/frame/elections-phragmen/src/weights.rs
+++ b/substrate/frame/elections-phragmen/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_elections_phragmen
+//! Autogenerated weights for `pallet_elections_phragmen`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/elections-phragmen/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/elections-phragmen/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_elections_phragmen.
+/// Weight functions needed for `pallet_elections_phragmen`.
 pub trait WeightInfo {
 	fn vote_equal(v: u32, ) -> Weight;
 	fn vote_more(v: u32, ) -> Weight;
@@ -66,165 +65,165 @@ pub trait WeightInfo {
 	fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight;
 }
 
-/// Weights for pallet_elections_phragmen using the Substrate node and recommended hardware.
+/// Weights for `pallet_elections_phragmen` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[1, 16]`.
 	fn vote_equal(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 33_028_000 picoseconds.
-		Weight::from_parts(34_073_914, 4764)
-			// Standard Error: 3_474
-			.saturating_add(Weight::from_parts(205_252, 0).saturating_mul(v.into()))
+		// Minimum execution time: 29_390_000 picoseconds.
+		Weight::from_parts(30_525_476, 4764)
+			// Standard Error: 3_185
+			.saturating_add(Weight::from_parts(143_073, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[2, 16]`.
 	fn vote_more(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `371 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 45_725_000 picoseconds.
-		Weight::from_parts(47_169_586, 4764)
-			// Standard Error: 5_148
-			.saturating_add(Weight::from_parts(213_742, 0).saturating_mul(v.into()))
+		// Minimum execution time: 39_765_000 picoseconds.
+		Weight::from_parts(41_374_102, 4764)
+			// Standard Error: 4_310
+			.saturating_add(Weight::from_parts(153_015, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[2, 16]`.
 	fn vote_less(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 45_519_000 picoseconds.
-		Weight::from_parts(47_339_108, 4764)
-			// Standard Error: 5_501
-			.saturating_add(Weight::from_parts(195_247, 0).saturating_mul(v.into()))
+		// Minimum execution time: 39_647_000 picoseconds.
+		Weight::from_parts(41_474_523, 4764)
+			// Standard Error: 5_503
+			.saturating_add(Weight::from_parts(149_029, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn remove_voter() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `925`
 		//  Estimated: `4764`
-		// Minimum execution time: 50_386_000 picoseconds.
-		Weight::from_parts(51_378_000, 4764)
+		// Minimum execution time: 41_882_000 picoseconds.
+		Weight::from_parts(42_794_000, 4764)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	fn submit_candidacy(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1570 + c * (48 ±0)`
 		//  Estimated: `3055 + c * (48 ±0)`
-		// Minimum execution time: 38_987_000 picoseconds.
-		Weight::from_parts(41_302_276, 3055)
-			// Standard Error: 2_047
-			.saturating_add(Weight::from_parts(125_200, 0).saturating_mul(c.into()))
+		// Minimum execution time: 33_719_000 picoseconds.
+		Weight::from_parts(35_017_073, 3055)
+			// Standard Error: 1_587
+			.saturating_add(Weight::from_parts(121_130, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	fn renounce_candidacy_candidate(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `285 + c * (48 ±0)`
 		//  Estimated: `1770 + c * (48 ±0)`
-		// Minimum execution time: 33_510_000 picoseconds.
-		Weight::from_parts(34_947_760, 1770)
-			// Standard Error: 1_781
-			.saturating_add(Weight::from_parts(78_851, 0).saturating_mul(c.into()))
+		// Minimum execution time: 27_263_000 picoseconds.
+		Weight::from_parts(28_215_666, 1770)
+			// Standard Error: 1_196
+			.saturating_add(Weight::from_parts(86_804, 0).saturating_mul(c.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into()))
 	}
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn renounce_candidacy_members() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1900`
-		//  Estimated: `3385`
-		// Minimum execution time: 50_603_000 picoseconds.
-		Weight::from_parts(51_715_000, 3385)
+		//  Measured:  `1933`
+		//  Estimated: `3418`
+		// Minimum execution time: 41_531_000 picoseconds.
+		Weight::from_parts(42_937_000, 3418)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn renounce_candidacy_runners_up() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `880`
 		//  Estimated: `2365`
-		// Minimum execution time: 33_441_000 picoseconds.
-		Weight::from_parts(34_812_000, 2365)
+		// Minimum execution time: 27_680_000 picoseconds.
+		Weight::from_parts(28_810_000, 2365)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Benchmark Override (r:0 w:0)
-	/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Benchmark::Override` (r:0 w:0)
+	/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn remove_member_without_replacement() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
@@ -232,87 +231,90 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Minimum execution time: 2_000_000_000_000 picoseconds.
 		Weight::from_parts(2_000_000_000_000, 0)
 	}
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn remove_member_with_replacement() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1900`
+		//  Measured:  `1933`
 		//  Estimated: `3593`
-		// Minimum execution time: 57_289_000 picoseconds.
-		Weight::from_parts(58_328_000, 3593)
+		// Minimum execution time: 45_333_000 picoseconds.
+		Weight::from_parts(46_523_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Elections Voting (r:513 w:512)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:512 w:512)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:512 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:512 w:512)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Elections::Voting` (r:257 w:256)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:256 w:256)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:256 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:256 w:256)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[256, 512]`.
 	/// The range of component `d` is `[0, 256]`.
-	fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight {
+	fn clean_defunct_voters(v: u32, d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1149 + v * (811 ±0)`
-		//  Estimated: `4621 + v * (3774 ±0)`
-		// Minimum execution time: 18_774_231_000 picoseconds.
-		Weight::from_parts(18_933_040_000, 4621)
-			// Standard Error: 301_534
-			.saturating_add(Weight::from_parts(44_306_903, 0).saturating_mul(v.into()))
+		//  Measured:  `0 + d * (818 ±0) + v * (57 ±0)`
+		//  Estimated: `24906 + d * (3774 ±1) + v * (24 ±0)`
+		// Minimum execution time: 5_620_000 picoseconds.
+		Weight::from_parts(5_817_000, 24906)
+			// Standard Error: 18_357
+			.saturating_add(Weight::from_parts(106_164, 0).saturating_mul(v.into()))
+			// Standard Error: 39_980
+			.saturating_add(Weight::from_parts(52_456_337, 0).saturating_mul(d.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(v.into())))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(v.into())))
-			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(v.into()))
+			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(d.into())))
+			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(d.into())))
+			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(d.into()))
+			.saturating_add(Weight::from_parts(0, 24).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:513 w:0)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:44 w:44)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Elections ElectionRounds (r:1 w:1)
-	/// Proof Skipped: Elections ElectionRounds (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:0 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:513 w:0)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:44 w:44)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Elections::ElectionRounds` (r:1 w:1)
+	/// Proof: `Elections::ElectionRounds` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:0 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	/// The range of component `v` is `[1, 512]`.
 	/// The range of component `e` is `[512, 8192]`.
 	fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + e * (28 ±0) + v * (606 ±0)`
-		//  Estimated: `178887 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)`
-		// Minimum execution time: 1_281_877_000 picoseconds.
-		Weight::from_parts(1_288_147_000, 178887)
-			// Standard Error: 528_851
-			.saturating_add(Weight::from_parts(17_761_407, 0).saturating_mul(v.into()))
-			// Standard Error: 33_932
-			.saturating_add(Weight::from_parts(698_277, 0).saturating_mul(e.into()))
+		//  Estimated: `178920 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)`
+		// Minimum execution time: 1_082_582_000 picoseconds.
+		Weight::from_parts(1_084_730_000, 178920)
+			// Standard Error: 594_096
+			.saturating_add(Weight::from_parts(19_096_288, 0).saturating_mul(v.into()))
+			// Standard Error: 38_118
+			.saturating_add(Weight::from_parts(792_945, 0).saturating_mul(e.into()))
 			.saturating_add(T::DbWeight::get().reads(21_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into())))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
@@ -324,164 +326,164 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[1, 16]`.
 	fn vote_equal(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 33_028_000 picoseconds.
-		Weight::from_parts(34_073_914, 4764)
-			// Standard Error: 3_474
-			.saturating_add(Weight::from_parts(205_252, 0).saturating_mul(v.into()))
+		// Minimum execution time: 29_390_000 picoseconds.
+		Weight::from_parts(30_525_476, 4764)
+			// Standard Error: 3_185
+			.saturating_add(Weight::from_parts(143_073, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[2, 16]`.
 	fn vote_more(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `371 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 45_725_000 picoseconds.
-		Weight::from_parts(47_169_586, 4764)
-			// Standard Error: 5_148
-			.saturating_add(Weight::from_parts(213_742, 0).saturating_mul(v.into()))
+		// Minimum execution time: 39_765_000 picoseconds.
+		Weight::from_parts(41_374_102, 4764)
+			// Standard Error: 4_310
+			.saturating_add(Weight::from_parts(153_015, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[2, 16]`.
 	fn vote_less(v: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + v * (80 ±0)`
 		//  Estimated: `4764 + v * (80 ±0)`
-		// Minimum execution time: 45_519_000 picoseconds.
-		Weight::from_parts(47_339_108, 4764)
-			// Standard Error: 5_501
-			.saturating_add(Weight::from_parts(195_247, 0).saturating_mul(v.into()))
+		// Minimum execution time: 39_647_000 picoseconds.
+		Weight::from_parts(41_474_523, 4764)
+			// Standard Error: 5_503
+			.saturating_add(Weight::from_parts(149_029, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 80).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Voting (r:1 w:1)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `Elections::Voting` (r:1 w:1)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	fn remove_voter() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `925`
 		//  Estimated: `4764`
-		// Minimum execution time: 50_386_000 picoseconds.
-		Weight::from_parts(51_378_000, 4764)
+		// Minimum execution time: 41_882_000 picoseconds.
+		Weight::from_parts(42_794_000, 4764)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	fn submit_candidacy(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1570 + c * (48 ±0)`
 		//  Estimated: `3055 + c * (48 ±0)`
-		// Minimum execution time: 38_987_000 picoseconds.
-		Weight::from_parts(41_302_276, 3055)
-			// Standard Error: 2_047
-			.saturating_add(Weight::from_parts(125_200, 0).saturating_mul(c.into()))
+		// Minimum execution time: 33_719_000 picoseconds.
+		Weight::from_parts(35_017_073, 3055)
+			// Standard Error: 1_587
+			.saturating_add(Weight::from_parts(121_130, 0).saturating_mul(c.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	fn renounce_candidacy_candidate(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `285 + c * (48 ±0)`
 		//  Estimated: `1770 + c * (48 ±0)`
-		// Minimum execution time: 33_510_000 picoseconds.
-		Weight::from_parts(34_947_760, 1770)
-			// Standard Error: 1_781
-			.saturating_add(Weight::from_parts(78_851, 0).saturating_mul(c.into()))
+		// Minimum execution time: 27_263_000 picoseconds.
+		Weight::from_parts(28_215_666, 1770)
+			// Standard Error: 1_196
+			.saturating_add(Weight::from_parts(86_804, 0).saturating_mul(c.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 48).saturating_mul(c.into()))
 	}
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn renounce_candidacy_members() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1900`
-		//  Estimated: `3385`
-		// Minimum execution time: 50_603_000 picoseconds.
-		Weight::from_parts(51_715_000, 3385)
+		//  Measured:  `1933`
+		//  Estimated: `3418`
+		// Minimum execution time: 41_531_000 picoseconds.
+		Weight::from_parts(42_937_000, 3418)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn renounce_candidacy_runners_up() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `880`
 		//  Estimated: `2365`
-		// Minimum execution time: 33_441_000 picoseconds.
-		Weight::from_parts(34_812_000, 2365)
+		// Minimum execution time: 27_680_000 picoseconds.
+		Weight::from_parts(28_810_000, 2365)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Benchmark Override (r:0 w:0)
-	/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Benchmark::Override` (r:0 w:0)
+	/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn remove_member_without_replacement() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
@@ -489,87 +491,90 @@ impl WeightInfo for () {
 		// Minimum execution time: 2_000_000_000_000 picoseconds.
 		Weight::from_parts(2_000_000_000_000, 0)
 	}
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:1 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:1 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn remove_member_with_replacement() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1900`
+		//  Measured:  `1933`
 		//  Estimated: `3593`
-		// Minimum execution time: 57_289_000 picoseconds.
-		Weight::from_parts(58_328_000, 3593)
+		// Minimum execution time: 45_333_000 picoseconds.
+		Weight::from_parts(46_523_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Elections Voting (r:513 w:512)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:0)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Candidates (r:1 w:0)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Balances Locks (r:512 w:512)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:512 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:512 w:512)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Elections::Voting` (r:257 w:256)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:0)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Candidates` (r:1 w:0)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Balances::Locks` (r:256 w:256)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:256 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:256 w:256)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `v` is `[256, 512]`.
 	/// The range of component `d` is `[0, 256]`.
-	fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight {
+	fn clean_defunct_voters(v: u32, d: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1149 + v * (811 ±0)`
-		//  Estimated: `4621 + v * (3774 ±0)`
-		// Minimum execution time: 18_774_231_000 picoseconds.
-		Weight::from_parts(18_933_040_000, 4621)
-			// Standard Error: 301_534
-			.saturating_add(Weight::from_parts(44_306_903, 0).saturating_mul(v.into()))
+		//  Measured:  `0 + d * (818 ±0) + v * (57 ±0)`
+		//  Estimated: `24906 + d * (3774 ±1) + v * (24 ±0)`
+		// Minimum execution time: 5_620_000 picoseconds.
+		Weight::from_parts(5_817_000, 24906)
+			// Standard Error: 18_357
+			.saturating_add(Weight::from_parts(106_164, 0).saturating_mul(v.into()))
+			// Standard Error: 39_980
+			.saturating_add(Weight::from_parts(52_456_337, 0).saturating_mul(d.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(v.into())))
-			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(v.into())))
-			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(v.into()))
+			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(d.into())))
+			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(d.into())))
+			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(d.into()))
+			.saturating_add(Weight::from_parts(0, 24).saturating_mul(v.into()))
 	}
-	/// Storage: Elections Candidates (r:1 w:1)
-	/// Proof Skipped: Elections Candidates (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:1)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections RunnersUp (r:1 w:1)
-	/// Proof Skipped: Elections RunnersUp (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Elections Voting (r:513 w:0)
-	/// Proof Skipped: Elections Voting (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Council Proposals (r:1 w:0)
-	/// Proof Skipped: Council Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:44 w:44)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Elections ElectionRounds (r:1 w:1)
-	/// Proof Skipped: Elections ElectionRounds (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Members (r:0 w:1)
-	/// Proof Skipped: Council Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Council Prime (r:0 w:1)
-	/// Proof Skipped: Council Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `Elections::Candidates` (r:1 w:1)
+	/// Proof: `Elections::Candidates` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:1)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::RunnersUp` (r:1 w:1)
+	/// Proof: `Elections::RunnersUp` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Voting` (r:513 w:0)
+	/// Proof: `Elections::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Proposals` (r:1 w:0)
+	/// Proof: `Council::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:44 w:44)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Elections::ElectionRounds` (r:1 w:1)
+	/// Proof: `Elections::ElectionRounds` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Members` (r:0 w:1)
+	/// Proof: `Council::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Council::Prime` (r:0 w:1)
+	/// Proof: `Council::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `c` is `[1, 64]`.
 	/// The range of component `v` is `[1, 512]`.
 	/// The range of component `e` is `[512, 8192]`.
 	fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + e * (28 ±0) + v * (606 ±0)`
-		//  Estimated: `178887 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)`
-		// Minimum execution time: 1_281_877_000 picoseconds.
-		Weight::from_parts(1_288_147_000, 178887)
-			// Standard Error: 528_851
-			.saturating_add(Weight::from_parts(17_761_407, 0).saturating_mul(v.into()))
-			// Standard Error: 33_932
-			.saturating_add(Weight::from_parts(698_277, 0).saturating_mul(e.into()))
+		//  Estimated: `178920 + c * (2135 ±7) + e * (12 ±0) + v * (2653 ±6)`
+		// Minimum execution time: 1_082_582_000 picoseconds.
+		Weight::from_parts(1_084_730_000, 178920)
+			// Standard Error: 594_096
+			.saturating_add(Weight::from_parts(19_096_288, 0).saturating_mul(v.into()))
+			// Standard Error: 38_118
+			.saturating_add(Weight::from_parts(792_945, 0).saturating_mul(e.into()))
 			.saturating_add(RocksDbWeight::get().reads(21_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(c.into())))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into())))
diff --git a/substrate/frame/examples/basic/src/lib.rs b/substrate/frame/examples/basic/src/lib.rs
index 12cadc969fd..94b2f276e00 100644
--- a/substrate/frame/examples/basic/src/lib.rs
+++ b/substrate/frame/examples/basic/src/lib.rs
@@ -46,9 +46,10 @@
 //!   use the [`Config::WeightInfo`] trait to calculate call weights. This can also be overridden,
 //!   as demonstrated by [`Call::set_dummy`].
 //! - A private function that performs a storage update.
-//! - A simple signed extension implementation (see: [`sp_runtime::traits::SignedExtension`]) which
-//!   increases the priority of the [`Call::set_dummy`] if it's present and drops any transaction
-//!   with an encoded length higher than 200 bytes.
+//! - A simple transaction extension implementation (see:
+//!   [`sp_runtime::traits::TransactionExtension`]) which increases the priority of the
+//!   [`Call::set_dummy`] if it's present and drops any transaction with an encoded length higher
+//!   than 200 bytes.
 
 // Ensure we're `no_std` when compiling for Wasm.
 #![cfg_attr(not(feature = "std"), no_std)]
@@ -64,10 +65,12 @@ use frame_system::ensure_signed;
 use log::info;
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{Bounded, DispatchInfoOf, SaturatedConversion, Saturating, SignedExtension},
-	transaction_validity::{
-		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+	impl_tx_ext_default,
+	traits::{
+		Bounded, DispatchInfoOf, OriginOf, SaturatedConversion, Saturating, TransactionExtension,
+		TransactionExtensionBase, ValidateResult,
 	},
+	transaction_validity::{InvalidTransaction, ValidTransaction},
 };
 use sp_std::vec::Vec;
 
@@ -440,8 +443,8 @@ impl<T: Config> Pallet<T> {
 
 // Similar to other FRAME pallets, your pallet can also define a signed extension and perform some
 // checks and [pre/post]processing [before/after] the transaction. A signed extension can be any
-// decodable type that implements `SignedExtension`. See the trait definition for the full list of
-// bounds. As a convention, you can follow this approach to create an extension for your pallet:
+// decodable type that implements `TransactionExtension`. See the trait definition for the full list
+// of bounds. As a convention, you can follow this approach to create an extension for your pallet:
 //   - If the extension does not carry any data, then use a tuple struct with just a `marker`
 //     (needed for the compiler to accept `T: Config`) will suffice.
 //   - Otherwise, create a tuple struct which contains the external data. Of course, for the entire
@@ -455,18 +458,18 @@ impl<T: Config> Pallet<T> {
 //
 // Using the extension, you can add some hooks to the life cycle of each transaction. Note that by
 // default, an extension is applied to all `Call` functions (i.e. all transactions). the `Call` enum
-// variant is given to each function of `SignedExtension`. Hence, you can filter based on pallet or
-// a particular call if needed.
+// variant is given to each function of `TransactionExtension`. Hence, you can filter based on
+// pallet or a particular call if needed.
 //
 // Some extra information, such as encoded length, some static dispatch info like weight and the
 // sender of the transaction (if signed) are also provided.
 //
 // The full list of hooks that can be added to a signed extension can be found
-// [here](https://paritytech.github.io/polkadot-sdk/master/sp_runtime/traits/trait.SignedExtension.html).
+// [here](https://paritytech.github.io/polkadot-sdk/master/sp_runtime/traits/trait.TransactionExtension.html).
 //
 // The signed extensions are aggregated in the runtime file of a substrate chain. All extensions
 // should be aggregated in a tuple and passed to the `CheckedExtrinsic` and `UncheckedExtrinsic`
-// types defined in the runtime. Lookup `pub type SignedExtra = (...)` in `node/runtime` and
+// types defined in the runtime. Lookup `pub type TxExtension = (...)` in `node/runtime` and
 // `node-template` for an example of this.
 
 /// A simple signed extension that checks for the `set_dummy` call. In that case, it increases the
@@ -484,52 +487,45 @@ impl<T: Config + Send + Sync> core::fmt::Debug for WatchDummy<T> {
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for WatchDummy<T>
+impl<T: Config + Send + Sync> TransactionExtensionBase for WatchDummy<T> {
+	const IDENTIFIER: &'static str = "WatchDummy";
+	type Implicit = ();
+}
+impl<T: Config + Send + Sync, Context>
+	TransactionExtension<<T as frame_system::Config>::RuntimeCall, Context> for WatchDummy<T>
 where
 	<T as frame_system::Config>::RuntimeCall: IsSubType<Call<T>>,
 {
-	const IDENTIFIER: &'static str = "WatchDummy";
-	type AccountId = T::AccountId;
-	type Call = <T as frame_system::Config>::RuntimeCall;
-	type AdditionalSigned = ();
 	type Pre = ();
-
-	fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
+	type Val = ();
 
 	fn validate(
 		&self,
-		_who: &Self::AccountId,
-		call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: OriginOf<<T as frame_system::Config>::RuntimeCall>,
+		call: &<T as frame_system::Config>::RuntimeCall,
+		_info: &DispatchInfoOf<<T as frame_system::Config>::RuntimeCall>,
 		len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, <T as frame_system::Config>::RuntimeCall> {
 		// if the transaction is too big, just drop it.
 		if len > 200 {
-			return InvalidTransaction::ExhaustsResources.into()
+			return Err(InvalidTransaction::ExhaustsResources.into())
 		}
 
 		// check for `set_dummy`
-		match call.is_sub_type() {
+		let validity = match call.is_sub_type() {
 			Some(Call::set_dummy { .. }) => {
 				sp_runtime::print("set_dummy was received.");
 
 				let valid_tx =
 					ValidTransaction { priority: Bounded::max_value(), ..Default::default() };
-				Ok(valid_tx)
+				valid_tx
 			},
-			_ => Ok(Default::default()),
-		}
+			_ => Default::default(),
+		};
+		Ok((validity, (), origin))
 	}
+	impl_tx_ext_default!(<T as frame_system::Config>::RuntimeCall; Context; prepare);
 }
diff --git a/substrate/frame/examples/basic/src/tests.rs b/substrate/frame/examples/basic/src/tests.rs
index 207e46e428d..e460ad0992f 100644
--- a/substrate/frame/examples/basic/src/tests.rs
+++ b/substrate/frame/examples/basic/src/tests.rs
@@ -27,7 +27,7 @@ use sp_core::H256;
 // The testing primitives are very useful for avoiding having to work with signatures
 // or public keys. `u64` is used as the `AccountId` and no `Signature`s are required.
 use sp_runtime::{
-	traits::{BlakeTwo256, IdentityLookup},
+	traits::{BlakeTwo256, DispatchTransaction, IdentityLookup},
 	BuildStorage,
 };
 // Reexport crate as its pallet name for construct_runtime.
@@ -158,13 +158,16 @@ fn signed_ext_watch_dummy_works() {
 
 		assert_eq!(
 			WatchDummy::<Test>(PhantomData)
-				.validate(&1, &call, &info, 150)
+				.validate_only(Some(1).into(), &call, &info, 150)
 				.unwrap()
+				.0
 				.priority,
 			u64::MAX,
 		);
 		assert_eq!(
-			WatchDummy::<Test>(PhantomData).validate(&1, &call, &info, 250),
+			WatchDummy::<Test>(PhantomData)
+				.validate_only(Some(1).into(), &call, &info, 250)
+				.unwrap_err(),
 			InvalidTransaction::ExhaustsResources.into(),
 		);
 	})
diff --git a/substrate/frame/examples/offchain-worker/src/tests.rs b/substrate/frame/examples/offchain-worker/src/tests.rs
index ea37a2da493..81f2a40840b 100644
--- a/substrate/frame/examples/offchain-worker/src/tests.rs
+++ b/substrate/frame/examples/offchain-worker/src/tests.rs
@@ -30,7 +30,7 @@ use sp_core::{
 
 use sp_keystore::{testing::MemoryKeystore, Keystore, KeystoreExt};
 use sp_runtime::{
-	testing::TestXt,
+	generic::UncheckedExtrinsic,
 	traits::{BlakeTwo256, Extrinsic as ExtrinsicT, IdentifyAccount, IdentityLookup, Verify},
 	RuntimeAppPublic,
 };
@@ -73,7 +73,7 @@ impl frame_system::Config for Test {
 	type MaxConsumers = ConstU32<16>;
 }
 
-type Extrinsic = TestXt<RuntimeCall, ()>;
+type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 type AccountId = <<Signature as Verify>::Signer as IdentifyAccount>::AccountId;
 
 impl frame_system::offchain::SigningTypes for Test {
@@ -99,7 +99,7 @@ where
 		_account: AccountId,
 		nonce: u64,
 	) -> Option<(RuntimeCall, <Extrinsic as ExtrinsicT>::SignaturePayload)> {
-		Some((call, (nonce, ())))
+		Some((call, (nonce, (), ())))
 	}
 }
 
@@ -219,8 +219,8 @@ fn should_submit_signed_transaction_on_chain() {
 		let tx = pool_state.write().transactions.pop().unwrap();
 		assert!(pool_state.read().transactions.is_empty());
 		let tx = Extrinsic::decode(&mut &*tx).unwrap();
-		assert_eq!(tx.signature.unwrap().0, 0);
-		assert_eq!(tx.call, RuntimeCall::Example(crate::Call::submit_price { price: 15523 }));
+		assert!(matches!(tx.preamble, sp_runtime::generic::Preamble::Signed(0, (), ())));
+		assert_eq!(tx.function, RuntimeCall::Example(crate::Call::submit_price { price: 15523 }));
 	});
 }
 
@@ -259,11 +259,11 @@ fn should_submit_unsigned_transaction_on_chain_for_any_account() {
 		// then
 		let tx = pool_state.write().transactions.pop().unwrap();
 		let tx = Extrinsic::decode(&mut &*tx).unwrap();
-		assert_eq!(tx.signature, None);
+		assert!(tx.is_inherent());
 		if let RuntimeCall::Example(crate::Call::submit_price_unsigned_with_signed_payload {
 			price_payload: body,
 			signature,
-		}) = tx.call
+		}) = tx.function
 		{
 			assert_eq!(body, price_payload);
 
@@ -313,11 +313,11 @@ fn should_submit_unsigned_transaction_on_chain_for_all_accounts() {
 		// then
 		let tx = pool_state.write().transactions.pop().unwrap();
 		let tx = Extrinsic::decode(&mut &*tx).unwrap();
-		assert_eq!(tx.signature, None);
+		assert!(tx.is_inherent());
 		if let RuntimeCall::Example(crate::Call::submit_price_unsigned_with_signed_payload {
 			price_payload: body,
 			signature,
-		}) = tx.call
+		}) = tx.function
 		{
 			assert_eq!(body, price_payload);
 
@@ -353,9 +353,9 @@ fn should_submit_raw_unsigned_transaction_on_chain() {
 		let tx = pool_state.write().transactions.pop().unwrap();
 		assert!(pool_state.read().transactions.is_empty());
 		let tx = Extrinsic::decode(&mut &*tx).unwrap();
-		assert_eq!(tx.signature, None);
+		assert!(tx.is_inherent());
 		assert_eq!(
-			tx.call,
+			tx.function,
 			RuntimeCall::Example(crate::Call::submit_price_unsigned {
 				block_number: 1,
 				price: 15523
diff --git a/substrate/frame/examples/tasks/src/weights.rs b/substrate/frame/examples/tasks/src/weights.rs
index 793af6e9622..c9ddea6f9a8 100644
--- a/substrate/frame/examples/tasks/src/weights.rs
+++ b/substrate/frame/examples/tasks/src/weights.rs
@@ -15,30 +15,31 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for `pallet_example_tasks`
+//! Autogenerated weights for `tasks_example`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-02, STEPS: `20`, REPEAT: `10`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `MacBook.local`, CPU: `<UNKNOWN>`
-//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/release/node-template
+// ./target/production/substrate-node
 // benchmark
 // pallet
-// --chain
-// dev
-// --pallet
-// pallet_example_tasks
-// --extrinsic
-// *
-// --steps
-// 20
-// --repeat
-// 10
-// --output
-// frame/examples/tasks/src/weights.rs
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=tasks_example
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/examples/tasks/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -48,37 +49,42 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_template.
+/// Weight functions needed for `tasks_example`.
 pub trait WeightInfo {
 	fn add_number_into_total() -> Weight;
 }
 
-/// Weight functions for `pallet_example_kitchensink`.
+/// Weights for `tasks_example` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Kitchensink OtherFoo (r:0 w:1)
-	/// Proof Skipped: Kitchensink OtherFoo (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TasksExample::Numbers` (r:1 w:1)
+	/// Proof: `TasksExample::Numbers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `TasksExample::Total` (r:1 w:1)
+	/// Proof: `TasksExample::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn add_number_into_total() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 1_000_000 picoseconds.
-		Weight::from_parts(1_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(1))
+		//  Measured:  `149`
+		//  Estimated: `3614`
+		// Minimum execution time: 5_776_000 picoseconds.
+		Weight::from_parts(6_178_000, 3614)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Kitchensink OtherFoo (r:0 w:1)
-	/// Proof Skipped: Kitchensink OtherFoo (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TasksExample::Numbers` (r:1 w:1)
+	/// Proof: `TasksExample::Numbers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `TasksExample::Total` (r:1 w:1)
+	/// Proof: `TasksExample::Total` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn add_number_into_total() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 1_000_000 picoseconds.
-		Weight::from_parts(1_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		//  Measured:  `149`
+		//  Estimated: `3614`
+		// Minimum execution time: 5_776_000 picoseconds.
+		Weight::from_parts(6_178_000, 3614)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 }
diff --git a/substrate/frame/executive/src/tests.rs b/substrate/frame/executive/src/tests.rs
index 70b55f6e855..a3f70a9fc3c 100644
--- a/substrate/frame/executive/src/tests.rs
+++ b/substrate/frame/executive/src/tests.rs
@@ -327,10 +327,42 @@ impl frame_system::Config for Runtime {
 
 type Balance = u64;
 
+pub struct BalancesWeights;
+impl pallet_balances::WeightInfo for BalancesWeights {
+	fn transfer_allow_death() -> Weight {
+		Weight::from_parts(25, 0)
+	}
+	fn transfer_keep_alive() -> Weight {
+		Weight::zero()
+	}
+	fn force_set_balance_creating() -> Weight {
+		Weight::zero()
+	}
+	fn force_set_balance_killing() -> Weight {
+		Weight::zero()
+	}
+	fn force_transfer() -> Weight {
+		Weight::zero()
+	}
+	fn transfer_all() -> Weight {
+		Weight::zero()
+	}
+	fn force_unreserve() -> Weight {
+		Weight::zero()
+	}
+	fn upgrade_accounts(_u: u32) -> Weight {
+		Weight::zero()
+	}
+	fn force_adjust_total_issuance() -> Weight {
+		Weight::zero()
+	}
+}
+
 #[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
 impl pallet_balances::Config for Runtime {
 	type Balance = Balance;
 	type AccountStore = System;
+	type WeightInfo = BalancesWeights;
 }
 
 parameter_types! {
@@ -343,6 +375,7 @@ impl pallet_transaction_payment::Config for Runtime {
 	type WeightToFee = IdentityFee<Balance>;
 	type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
 	type FeeMultiplierUpdate = ();
+	type WeightInfo = ();
 }
 
 impl custom::Config for Runtime {}
@@ -355,19 +388,46 @@ impl frame_support::traits::Get<sp_version::RuntimeVersion> for RuntimeVersion {
 	}
 }
 
+#[derive(Clone, Debug, Encode, codec::Decode, PartialEq, Eq, scale_info::TypeInfo)]
+pub struct AccountU64(u64);
+impl sp_runtime::traits::IdentifyAccount for AccountU64 {
+	type AccountId = u64;
+	fn into_account(self) -> u64 {
+		self.0
+	}
+}
+
+impl sp_runtime::traits::Verify for AccountU64 {
+	type Signer = AccountU64;
+	fn verify<L: sp_runtime::traits::Lazy<[u8]>>(
+		&self,
+		_msg: L,
+		_signer: &<Self::Signer as sp_runtime::traits::IdentifyAccount>::AccountId,
+	) -> bool {
+		true
+	}
+}
+
+impl From<u64> for AccountU64 {
+	fn from(value: u64) -> Self {
+		Self(value)
+	}
+}
+
 parameter_types! {
 	pub static RuntimeVersionTestValues: sp_version::RuntimeVersion =
 		Default::default();
 }
 
-type SignedExtra = (
+type TxExtension = (
 	frame_system::CheckEra<Runtime>,
 	frame_system::CheckNonce<Runtime>,
 	frame_system::CheckWeight<Runtime>,
 	pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
 );
-type TestXt = sp_runtime::testing::TestXt<RuntimeCall, SignedExtra>;
-type TestBlock = Block<TestXt>;
+type UncheckedXt =
+	sp_runtime::generic::UncheckedExtrinsic<u64, RuntimeCall, AccountU64, TxExtension>;
+type TestBlock = Block<UncheckedXt>;
 
 // Will contain `true` when the custom runtime logic was called.
 const CUSTOM_ON_RUNTIME_KEY: &[u8] = b":custom:on_runtime";
@@ -387,7 +447,7 @@ impl OnRuntimeUpgrade for CustomOnRuntimeUpgrade {
 
 type Executive = super::Executive<
 	Runtime,
-	Block<TestXt>,
+	Block<UncheckedXt>,
 	ChainContext<Runtime>,
 	Runtime,
 	AllPalletsWithSystem,
@@ -462,17 +522,14 @@ impl MultiStepMigrator for MockedModeGetter {
 	}
 }
 
-fn extra(nonce: u64, fee: Balance) -> SignedExtra {
+fn tx_ext(nonce: u64, fee: Balance) -> TxExtension {
 	(
 		frame_system::CheckEra::from(Era::Immortal),
 		frame_system::CheckNonce::from(nonce),
 		frame_system::CheckWeight::new(),
 		pallet_transaction_payment::ChargeTransactionPayment::from(fee),
 	)
-}
-
-fn sign_extra(who: u64, nonce: u64, fee: Balance) -> Option<(u64, SignedExtra)> {
-	Some((who, extra(nonce, fee)))
+		.into()
 }
 
 fn call_transfer(dest: u64, value: u64) -> RuntimeCall {
@@ -485,7 +542,7 @@ fn balance_transfer_dispatch_works() {
 	pallet_balances::GenesisConfig::<Runtime> { balances: vec![(1, 211)] }
 		.assimilate_storage(&mut t)
 		.unwrap();
-	let xt = TestXt::new(call_transfer(2, 69), sign_extra(1, 0, 0));
+	let xt = UncheckedXt::new_signed(call_transfer(2, 69), 1, 1.into(), tx_ext(0, 0));
 	let weight = xt.get_dispatch_info().weight +
 		<Runtime as frame_system::Config>::BlockWeights::get()
 			.get(DispatchClass::Normal)
@@ -596,7 +653,7 @@ fn block_import_of_bad_extrinsic_root_fails() {
 fn bad_extrinsic_not_inserted() {
 	let mut t = new_test_ext(1);
 	// bad nonce check!
-	let xt = TestXt::new(call_transfer(33, 69), sign_extra(1, 30, 0));
+	let xt = UncheckedXt::new_signed(call_transfer(33, 69), 1, 1.into(), tx_ext(30, 0));
 	t.execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
 		assert_err!(
@@ -610,27 +667,24 @@ fn bad_extrinsic_not_inserted() {
 #[test]
 fn block_weight_limit_enforced() {
 	let mut t = new_test_ext(10000);
-	// given: TestXt uses the encoded len as fixed Len:
-	let xt = TestXt::new(
-		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 0, 0),
-	);
-	let encoded = xt.encode();
-	let encoded_len = encoded.len() as u64;
+	let transfer_weight =
+			<<Runtime as pallet_balances::Config>::WeightInfo as pallet_balances::WeightInfo>::transfer_allow_death();
 	// on_initialize weight + base block execution weight
 	let block_weights = <Runtime as frame_system::Config>::BlockWeights::get();
 	let base_block_weight = Weight::from_parts(175, 0) + block_weights.base_block;
 	let limit = block_weights.get(DispatchClass::Normal).max_total.unwrap() - base_block_weight;
-	let num_to_exhaust_block = limit.ref_time() / (encoded_len + 5);
+	let num_to_exhaust_block = limit.ref_time() / (transfer_weight.ref_time() + 5);
 	t.execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
 		// Base block execution weight + `on_initialize` weight from the custom module.
 		assert_eq!(<frame_system::Pallet<Runtime>>::block_weight().total(), base_block_weight);
 
 		for nonce in 0..=num_to_exhaust_block {
-			let xt = TestXt::new(
+			let xt = UncheckedXt::new_signed(
 				RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-				sign_extra(1, nonce.into(), 0),
+				1,
+				1.into(),
+				tx_ext(nonce.into(), 0),
 			);
 			let res = Executive::apply_extrinsic(xt);
 			if nonce != num_to_exhaust_block {
@@ -638,7 +692,8 @@ fn block_weight_limit_enforced() {
 				assert_eq!(
 					<frame_system::Pallet<Runtime>>::block_weight().total(),
 					//--------------------- on_initialize + block_execution + extrinsic_base weight
-					Weight::from_parts((encoded_len + 5) * (nonce + 1), 0) + base_block_weight,
+					Weight::from_parts((transfer_weight.ref_time() + 5) * (nonce + 1), 0) +
+						base_block_weight,
 				);
 				assert_eq!(
 					<frame_system::Pallet<Runtime>>::extrinsic_index(),
@@ -653,19 +708,26 @@ fn block_weight_limit_enforced() {
 
 #[test]
 fn block_weight_and_size_is_stored_per_tx() {
-	let xt = TestXt::new(
+	let xt = UncheckedXt::new_signed(
 		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 0, 0),
+		1,
+		1.into(),
+		tx_ext(0, 0),
 	);
-	let x1 = TestXt::new(
+	let x1 = UncheckedXt::new_signed(
 		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 1, 0),
+		1,
+		1.into(),
+		tx_ext(1, 0),
 	);
-	let x2 = TestXt::new(
+	let x2 = UncheckedXt::new_signed(
 		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 2, 0),
+		1,
+		1.into(),
+		tx_ext(2, 0),
 	);
 	let len = xt.clone().encode().len() as u32;
+	let transfer_weight = <<Runtime as pallet_balances::Config>::WeightInfo as pallet_balances::WeightInfo>::transfer_allow_death();
 	let mut t = new_test_ext(1);
 	t.execute_with(|| {
 		// Block execution weight + on_initialize weight from custom module
@@ -681,8 +743,7 @@ fn block_weight_and_size_is_stored_per_tx() {
 		assert!(Executive::apply_extrinsic(x1.clone()).unwrap().is_ok());
 		assert!(Executive::apply_extrinsic(x2.clone()).unwrap().is_ok());
 
-		// default weight for `TestXt` == encoded length.
-		let extrinsic_weight = Weight::from_parts(len as u64, 0) +
+		let extrinsic_weight = transfer_weight +
 			<Runtime as frame_system::Config>::BlockWeights::get()
 				.get(DispatchClass::Normal)
 				.base_extrinsic;
@@ -707,8 +768,8 @@ fn block_weight_and_size_is_stored_per_tx() {
 
 #[test]
 fn validate_unsigned() {
-	let valid = TestXt::new(RuntimeCall::Custom(custom::Call::allowed_unsigned {}), None);
-	let invalid = TestXt::new(RuntimeCall::Custom(custom::Call::unallowed_unsigned {}), None);
+	let valid = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::allowed_unsigned {}));
+	let invalid = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::unallowed_unsigned {}));
 	let mut t = new_test_ext(1);
 
 	t.execute_with(|| {
@@ -745,9 +806,11 @@ fn can_not_pay_for_tx_fee_on_full_lock() {
 	t.execute_with(|| {
 		<pallet_balances::Pallet<Runtime> as fungible::MutateFreeze<u64>>::set_freeze(&(), &1, 110)
 			.unwrap();
-		let xt = TestXt::new(
+		let xt = UncheckedXt::new_signed(
 			RuntimeCall::System(frame_system::Call::remark { remark: vec![1u8] }),
-			sign_extra(1, 0, 0),
+			1,
+			1.into(),
+			tx_ext(0, 0),
 		);
 		Executive::initialize_block(&Header::new_from_number(1));
 
@@ -872,9 +935,11 @@ fn event_from_runtime_upgrade_is_included() {
 /// used through the `ExecuteBlock` trait.
 #[test]
 fn custom_runtime_upgrade_is_called_when_using_execute_block_trait() {
-	let xt = TestXt::new(
+	let xt = UncheckedXt::new_signed(
 		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 0, 0),
+		1,
+		1.into(),
+		tx_ext(0, 0),
 	);
 
 	let header = new_test_ext(1).execute_with(|| {
@@ -902,7 +967,10 @@ fn custom_runtime_upgrade_is_called_when_using_execute_block_trait() {
 			*v = sp_version::RuntimeVersion { spec_version: 1, ..Default::default() }
 		});
 
-		<Executive as ExecuteBlock<Block<TestXt>>>::execute_block(Block::new(header, vec![xt]));
+		<Executive as ExecuteBlock<Block<UncheckedXt>>>::execute_block(Block::new(
+			header,
+			vec![xt],
+		));
 
 		assert_eq!(&sp_io::storage::get(TEST_KEY).unwrap()[..], *b"module");
 		assert_eq!(sp_io::storage::get(CUSTOM_ON_RUNTIME_KEY).unwrap(), true.encode());
@@ -968,7 +1036,7 @@ fn offchain_worker_works_as_expected() {
 #[test]
 fn calculating_storage_root_twice_works() {
 	let call = RuntimeCall::Custom(custom::Call::calculate_storage_root {});
-	let xt = TestXt::new(call, sign_extra(1, 0, 0));
+	let xt = UncheckedXt::new_signed(call, 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -987,11 +1055,13 @@ fn calculating_storage_root_twice_works() {
 #[test]
 #[should_panic(expected = "Invalid inherent position for extrinsic at index 1")]
 fn invalid_inherent_position_fail() {
-	let xt1 = TestXt::new(
+	let xt1 = UncheckedXt::new_signed(
 		RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 33, value: 0 }),
-		sign_extra(1, 0, 0),
+		1,
+		1.into(),
+		tx_ext(0, 0),
 	);
-	let xt2 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
+	let xt2 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -1010,8 +1080,8 @@ fn invalid_inherent_position_fail() {
 
 #[test]
 fn valid_inherents_position_works() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -1031,7 +1101,12 @@ fn valid_inherents_position_works() {
 #[test]
 #[should_panic(expected = "A call was labelled as mandatory, but resulted in an Error.")]
 fn invalid_inherents_fail_block_execution() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_signed(
+		RuntimeCall::Custom(custom::Call::inherent {}),
+		1,
+		1.into(),
+		tx_ext(0, 0),
+	);
 
 	new_test_ext(1).execute_with(|| {
 		Executive::execute_block(Block::new(
@@ -1044,7 +1119,7 @@ fn invalid_inherents_fail_block_execution() {
 // Inherents are created by the runtime and don't need to be validated.
 #[test]
 fn inherents_fail_validate_block() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
 
 	new_test_ext(1).execute_with(|| {
 		assert_eq!(
@@ -1058,7 +1133,7 @@ fn inherents_fail_validate_block() {
 /// Inherents still work while `initialize_block` forbids transactions.
 #[test]
 fn inherents_ok_while_exts_forbidden_works() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
 
 	let header = new_test_ext(1).execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
@@ -1078,8 +1153,8 @@ fn inherents_ok_while_exts_forbidden_works() {
 #[test]
 #[should_panic = "Only inherents are allowed in this block"]
 fn transactions_in_only_inherents_block_errors() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
@@ -1099,8 +1174,8 @@ fn transactions_in_only_inherents_block_errors() {
 /// Same as above but no error.
 #[test]
 fn transactions_in_normal_block_works() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
@@ -1120,8 +1195,8 @@ fn transactions_in_normal_block_works() {
 #[test]
 #[cfg(feature = "try-runtime")]
 fn try_execute_block_works() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		Executive::initialize_block(&Header::new_from_number(1));
@@ -1148,8 +1223,8 @@ fn try_execute_block_works() {
 #[cfg(feature = "try-runtime")]
 #[should_panic = "Only inherents allowed"]
 fn try_execute_tx_forbidden_errors() {
-	let xt1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let xt1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -1176,9 +1251,9 @@ fn try_execute_tx_forbidden_errors() {
 /// Check that `ensure_inherents_are_first` reports the correct indices.
 #[test]
 fn ensure_inherents_are_first_works() {
-	let in1 = TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None);
-	let in2 = TestXt::new(RuntimeCall::Custom2(custom2::Call::inherent {}), None);
-	let xt2 = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let in1 = UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}));
+	let in2 = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::inherent {}));
+	let xt2 = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 
 	// Mocked empty header:
 	let header = new_test_ext(1).execute_with(|| {
@@ -1256,18 +1331,20 @@ fn callbacks_in_block_execution_works_inner(mbms_active: bool) {
 
 			for i in 0..n_in {
 				let xt = if i % 2 == 0 {
-					TestXt::new(RuntimeCall::Custom(custom::Call::inherent {}), None)
+					UncheckedXt::new_bare(RuntimeCall::Custom(custom::Call::inherent {}))
 				} else {
-					TestXt::new(RuntimeCall::Custom2(custom2::Call::optional_inherent {}), None)
+					UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::optional_inherent {}))
 				};
 				Executive::apply_extrinsic(xt.clone()).unwrap().unwrap();
 				extrinsics.push(xt);
 			}
 
 			for t in 0..n_tx {
-				let xt = TestXt::new(
+				let xt = UncheckedXt::new_signed(
 					RuntimeCall::Custom2(custom2::Call::some_call {}),
-					sign_extra(1, t as u64, 0),
+					1,
+					1.into(),
+					tx_ext(t as u64, 0),
 				);
 				// Extrinsics can be applied even when MBMs are active. Only the `execute_block`
 				// will reject it.
@@ -1307,8 +1384,13 @@ fn callbacks_in_block_execution_works_inner(mbms_active: bool) {
 
 #[test]
 fn post_inherent_called_after_all_inherents() {
-	let in1 = TestXt::new(RuntimeCall::Custom2(custom2::Call::inherent {}), None);
-	let xt1 = TestXt::new(RuntimeCall::Custom2(custom2::Call::some_call {}), sign_extra(1, 0, 0));
+	let in1 = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::inherent {}));
+	let xt1 = UncheckedXt::new_signed(
+		RuntimeCall::Custom2(custom2::Call::some_call {}),
+		1,
+		1.into(),
+		tx_ext(0, 0),
+	);
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -1342,8 +1424,13 @@ fn post_inherent_called_after_all_inherents() {
 /// Regression test for AppSec finding #40.
 #[test]
 fn post_inherent_called_after_all_optional_inherents() {
-	let in1 = TestXt::new(RuntimeCall::Custom2(custom2::Call::optional_inherent {}), None);
-	let xt1 = TestXt::new(RuntimeCall::Custom2(custom2::Call::some_call {}), sign_extra(1, 0, 0));
+	let in1 = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::optional_inherent {}));
+	let xt1 = UncheckedXt::new_signed(
+		RuntimeCall::Custom2(custom2::Call::some_call {}),
+		1,
+		1.into(),
+		tx_ext(0, 0),
+	);
 
 	let header = new_test_ext(1).execute_with(|| {
 		// Let's build some fake block.
@@ -1376,14 +1463,14 @@ fn post_inherent_called_after_all_optional_inherents() {
 
 #[test]
 fn is_inherent_works() {
-	let ext = TestXt::new(RuntimeCall::Custom2(custom2::Call::inherent {}), None);
+	let ext = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::inherent {}));
 	assert!(Runtime::is_inherent(&ext));
-	let ext = TestXt::new(RuntimeCall::Custom2(custom2::Call::optional_inherent {}), None);
+	let ext = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::optional_inherent {}));
 	assert!(Runtime::is_inherent(&ext));
 
-	let ext = TestXt::new(call_transfer(33, 0), sign_extra(1, 0, 0));
+	let ext = UncheckedXt::new_signed(call_transfer(33, 0), 1, 1.into(), tx_ext(0, 0));
 	assert!(!Runtime::is_inherent(&ext));
 
-	let ext = TestXt::new(RuntimeCall::Custom2(custom2::Call::allowed_unsigned {}), None);
+	let ext = UncheckedXt::new_bare(RuntimeCall::Custom2(custom2::Call::allowed_unsigned {}));
 	assert!(!Runtime::is_inherent(&ext), "Unsigned ext are not automatically inherents");
 }
diff --git a/substrate/frame/fast-unstake/src/weights.rs b/substrate/frame/fast-unstake/src/weights.rs
index 9c25a409f74..d783ba921bf 100644
--- a/substrate/frame/fast-unstake/src/weights.rs
+++ b/substrate/frame/fast-unstake/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_fast_unstake
+//! Autogenerated weights for `pallet_fast_unstake`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/fast-unstake/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/fast-unstake/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_fast_unstake.
+/// Weight functions needed for `pallet_fast_unstake`.
 pub trait WeightInfo {
 	fn on_idle_unstake(b: u32, ) -> Weight;
 	fn on_idle_check(v: u32, b: u32, ) -> Weight;
@@ -59,301 +58,305 @@ pub trait WeightInfo {
 	fn control() -> Weight;
 }
 
-/// Weights for pallet_fast_unstake using the Substrate node and recommended hardware.
+/// Weights for `pallet_fast_unstake` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ValidatorCount (r:1 w:0)
-	/// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:1)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:0)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking SlashingSpans (r:64 w:0)
-	/// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Staking Bonded (r:64 w:64)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Validators (r:64 w:0)
-	/// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen)
-	/// Storage: Staking Nominators (r:64 w:0)
-	/// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen)
-	/// Storage: System Account (r:64 w:64)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:64 w:64)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:64 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:0 w:64)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Staking Payee (r:0 w:64)
-	/// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ValidatorCount` (r:1 w:0)
+	/// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:1)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:0)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::SlashingSpans` (r:64 w:0)
+	/// Proof: `Staking::SlashingSpans` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::Bonded` (r:64 w:64)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:64 w:64)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:64 w:64)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:64 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:64 w:64)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Validators` (r:64 w:0)
+	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Nominators` (r:64 w:0)
+	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Payee` (r:0 w:64)
+	/// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[1, 64]`.
 	fn on_idle_unstake(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1378 + b * (343 ±0)`
+		//  Measured:  `1475 + b * (452 ±0)`
 		//  Estimated: `7253 + b * (3774 ±0)`
-		// Minimum execution time: 92_847_000 picoseconds.
-		Weight::from_parts(42_300_813, 7253)
-			// Standard Error: 40_514
-			.saturating_add(Weight::from_parts(58_412_402, 0).saturating_mul(b.into()))
+		// Minimum execution time: 89_005_000 picoseconds.
+		Weight::from_parts(50_257_055, 7253)
+			// Standard Error: 68_836
+			.saturating_add(Weight::from_parts(57_329_950, 0).saturating_mul(b.into()))
 			.saturating_add(T::DbWeight::get().reads(6_u64))
-			.saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(b.into())))
+			.saturating_add(T::DbWeight::get().reads((8_u64).saturating_mul(b.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into())))
 			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(b.into()))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ValidatorCount (r:1 w:0)
-	/// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:1)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:0)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ErasStakers (r:257 w:0)
-	/// Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ValidatorCount` (r:1 w:0)
+	/// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:1)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:0)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ErasStakers` (r:1 w:0)
+	/// Proof: `Staking::ErasStakers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::ErasStakersPaged` (r:257 w:0)
+	/// Proof: `Staking::ErasStakersPaged` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1, 256]`.
 	/// The range of component `b` is `[1, 64]`.
 	fn on_idle_check(v: u32, b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1546 + b * (48 ±0) + v * (10037 ±0)`
-		//  Estimated: `7253 + b * (49 ±0) + v * (12513 ±0)`
-		// Minimum execution time: 1_685_784_000 picoseconds.
-		Weight::from_parts(1_693_370_000, 7253)
-			// Standard Error: 13_295_842
-			.saturating_add(Weight::from_parts(425_349_148, 0).saturating_mul(v.into()))
-			// Standard Error: 53_198_180
-			.saturating_add(Weight::from_parts(1_673_328_444, 0).saturating_mul(b.into()))
-			.saturating_add(T::DbWeight::get().reads(7_u64))
+		//  Measured:  `1879 + b * (55 ±0) + v * (10055 ±0)`
+		//  Estimated: `7253 + b * (56 ±0) + v * (12531 ±0)`
+		// Minimum execution time: 1_737_131_000 picoseconds.
+		Weight::from_parts(1_746_770_000, 7253)
+			// Standard Error: 13_401_143
+			.saturating_add(Weight::from_parts(426_946_450, 0).saturating_mul(v.into()))
+			// Standard Error: 53_619_501
+			.saturating_add(Weight::from_parts(1_664_681_508, 0).saturating_mul(b.into()))
+			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
-			.saturating_add(Weight::from_parts(0, 49).saturating_mul(b.into()))
-			.saturating_add(Weight::from_parts(0, 12513).saturating_mul(v.into()))
+			.saturating_add(Weight::from_parts(0, 56).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(0, 12531).saturating_mul(v.into()))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:1)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Queue (r:1 w:1)
-	/// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:0)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Validators (r:1 w:0)
-	/// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen)
-	/// Storage: Staking Nominators (r:1 w:1)
-	/// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen)
-	/// Storage: Staking CounterForNominators (r:1 w:1)
-	/// Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:1 w:1)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
-	/// Storage: VoterList CounterForListNodes (r:1 w:1)
-	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:1)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:1)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Queue` (r:1 w:1)
+	/// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:0)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Validators` (r:1 w:0)
+	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Nominators` (r:1 w:1)
+	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CounterForNominators` (r:1 w:1)
+	/// Proof: `Staking::CounterForNominators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:1 w:1)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::CounterForListNodes` (r:1 w:1)
+	/// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:1)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn register_fast_unstake() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1964`
+		//  Measured:  `1955`
 		//  Estimated: `7253`
-		// Minimum execution time: 125_512_000 picoseconds.
-		Weight::from_parts(129_562_000, 7253)
+		// Minimum execution time: 112_632_000 picoseconds.
+		Weight::from_parts(117_267_000, 7253)
 			.saturating_add(T::DbWeight::get().reads(15_u64))
 			.saturating_add(T::DbWeight::get().writes(9_u64))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Queue (r:1 w:1)
-	/// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:0)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:1)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Queue` (r:1 w:1)
+	/// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:0)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:1)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn deregister() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1223`
+		//  Measured:  `1251`
 		//  Estimated: `7253`
-		// Minimum execution time: 43_943_000 picoseconds.
-		Weight::from_parts(45_842_000, 7253)
+		// Minimum execution time: 39_253_000 picoseconds.
+		Weight::from_parts(40_053_000, 7253)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:0 w:1)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn control() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_677_000 picoseconds.
-		Weight::from_parts(2_849_000, 0)
+		// Minimum execution time: 2_386_000 picoseconds.
+		Weight::from_parts(2_508_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ValidatorCount (r:1 w:0)
-	/// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:1)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:0)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking SlashingSpans (r:64 w:0)
-	/// Proof Skipped: Staking SlashingSpans (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Staking Bonded (r:64 w:64)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Validators (r:64 w:0)
-	/// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen)
-	/// Storage: Staking Nominators (r:64 w:0)
-	/// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen)
-	/// Storage: System Account (r:64 w:64)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:64 w:64)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:64 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:0 w:64)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Staking Payee (r:0 w:64)
-	/// Proof: Staking Payee (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ValidatorCount` (r:1 w:0)
+	/// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:1)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:0)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::SlashingSpans` (r:64 w:0)
+	/// Proof: `Staking::SlashingSpans` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::Bonded` (r:64 w:64)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:64 w:64)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:64 w:64)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:64 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:64 w:64)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Validators` (r:64 w:0)
+	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Nominators` (r:64 w:0)
+	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Payee` (r:0 w:64)
+	/// Proof: `Staking::Payee` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	/// The range of component `b` is `[1, 64]`.
 	fn on_idle_unstake(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1378 + b * (343 ±0)`
+		//  Measured:  `1475 + b * (452 ±0)`
 		//  Estimated: `7253 + b * (3774 ±0)`
-		// Minimum execution time: 92_847_000 picoseconds.
-		Weight::from_parts(42_300_813, 7253)
-			// Standard Error: 40_514
-			.saturating_add(Weight::from_parts(58_412_402, 0).saturating_mul(b.into()))
+		// Minimum execution time: 89_005_000 picoseconds.
+		Weight::from_parts(50_257_055, 7253)
+			// Standard Error: 68_836
+			.saturating_add(Weight::from_parts(57_329_950, 0).saturating_mul(b.into()))
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
-			.saturating_add(RocksDbWeight::get().reads((7_u64).saturating_mul(b.into())))
+			.saturating_add(RocksDbWeight::get().reads((8_u64).saturating_mul(b.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(b.into())))
 			.saturating_add(Weight::from_parts(0, 3774).saturating_mul(b.into()))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ValidatorCount (r:1 w:0)
-	/// Proof: Staking ValidatorCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:1)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:0)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: ElectionProviderMultiPhase CurrentPhase (r:1 w:0)
-	/// Proof Skipped: ElectionProviderMultiPhase CurrentPhase (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking ErasStakers (r:257 w:0)
-	/// Proof Skipped: Staking ErasStakers (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ValidatorCount` (r:1 w:0)
+	/// Proof: `Staking::ValidatorCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:1)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:0)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `ElectionProviderMultiPhase::CurrentPhase` (r:1 w:0)
+	/// Proof: `ElectionProviderMultiPhase::CurrentPhase` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::ErasStakers` (r:1 w:0)
+	/// Proof: `Staking::ErasStakers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Staking::ErasStakersPaged` (r:257 w:0)
+	/// Proof: `Staking::ErasStakersPaged` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `v` is `[1, 256]`.
 	/// The range of component `b` is `[1, 64]`.
 	fn on_idle_check(v: u32, b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1546 + b * (48 ±0) + v * (10037 ±0)`
-		//  Estimated: `7253 + b * (49 ±0) + v * (12513 ±0)`
-		// Minimum execution time: 1_685_784_000 picoseconds.
-		Weight::from_parts(1_693_370_000, 7253)
-			// Standard Error: 13_295_842
-			.saturating_add(Weight::from_parts(425_349_148, 0).saturating_mul(v.into()))
-			// Standard Error: 53_198_180
-			.saturating_add(Weight::from_parts(1_673_328_444, 0).saturating_mul(b.into()))
-			.saturating_add(RocksDbWeight::get().reads(7_u64))
+		//  Measured:  `1879 + b * (55 ±0) + v * (10055 ±0)`
+		//  Estimated: `7253 + b * (56 ±0) + v * (12531 ±0)`
+		// Minimum execution time: 1_737_131_000 picoseconds.
+		Weight::from_parts(1_746_770_000, 7253)
+			// Standard Error: 13_401_143
+			.saturating_add(Weight::from_parts(426_946_450, 0).saturating_mul(v.into()))
+			// Standard Error: 53_619_501
+			.saturating_add(Weight::from_parts(1_664_681_508, 0).saturating_mul(b.into()))
+			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
-			.saturating_add(Weight::from_parts(0, 49).saturating_mul(b.into()))
-			.saturating_add(Weight::from_parts(0, 12513).saturating_mul(v.into()))
+			.saturating_add(Weight::from_parts(0, 56).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(0, 12531).saturating_mul(v.into()))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:1)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Queue (r:1 w:1)
-	/// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:0)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: Staking Bonded (r:1 w:0)
-	/// Proof: Staking Bonded (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen)
-	/// Storage: Staking Validators (r:1 w:0)
-	/// Proof: Staking Validators (max_values: None, max_size: Some(45), added: 2520, mode: MaxEncodedLen)
-	/// Storage: Staking Nominators (r:1 w:1)
-	/// Proof: Staking Nominators (max_values: None, max_size: Some(558), added: 3033, mode: MaxEncodedLen)
-	/// Storage: Staking CounterForNominators (r:1 w:1)
-	/// Proof: Staking CounterForNominators (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: VoterList ListNodes (r:1 w:1)
-	/// Proof: VoterList ListNodes (max_values: None, max_size: Some(154), added: 2629, mode: MaxEncodedLen)
-	/// Storage: VoterList ListBags (r:1 w:1)
-	/// Proof: VoterList ListBags (max_values: None, max_size: Some(82), added: 2557, mode: MaxEncodedLen)
-	/// Storage: VoterList CounterForListNodes (r:1 w:1)
-	/// Proof: VoterList CounterForListNodes (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking CurrentEra (r:1 w:0)
-	/// Proof: Staking CurrentEra (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Balances Locks (r:1 w:1)
-	/// Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen)
-	/// Storage: Balances Freezes (r:1 w:0)
-	/// Proof: Balances Freezes (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:1)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:1)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Queue` (r:1 w:1)
+	/// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:0)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Bonded` (r:1 w:0)
+	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Validators` (r:1 w:0)
+	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Nominators` (r:1 w:1)
+	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CounterForNominators` (r:1 w:1)
+	/// Proof: `Staking::CounterForNominators` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListNodes` (r:1 w:1)
+	/// Proof: `VoterList::ListNodes` (`max_values`: None, `max_size`: Some(154), added: 2629, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::ListBags` (r:1 w:1)
+	/// Proof: `VoterList::ListBags` (`max_values`: None, `max_size`: Some(82), added: 2557, mode: `MaxEncodedLen`)
+	/// Storage: `VoterList::CounterForListNodes` (r:1 w:1)
+	/// Proof: `VoterList::CounterForListNodes` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::CurrentEra` (r:1 w:0)
+	/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Locks` (r:1 w:1)
+	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Freezes` (r:1 w:0)
+	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:1)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn register_fast_unstake() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1964`
+		//  Measured:  `1955`
 		//  Estimated: `7253`
-		// Minimum execution time: 125_512_000 picoseconds.
-		Weight::from_parts(129_562_000, 7253)
+		// Minimum execution time: 112_632_000 picoseconds.
+		Weight::from_parts(117_267_000, 7253)
 			.saturating_add(RocksDbWeight::get().reads(15_u64))
 			.saturating_add(RocksDbWeight::get().writes(9_u64))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:1 w:0)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Queue (r:1 w:1)
-	/// Proof: FastUnstake Queue (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
-	/// Storage: FastUnstake Head (r:1 w:0)
-	/// Proof: FastUnstake Head (max_values: Some(1), max_size: Some(5768), added: 6263, mode: MaxEncodedLen)
-	/// Storage: FastUnstake CounterForQueue (r:1 w:1)
-	/// Proof: FastUnstake CounterForQueue (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:1 w:0)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Queue` (r:1 w:1)
+	/// Proof: `FastUnstake::Queue` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::Head` (r:1 w:0)
+	/// Proof: `FastUnstake::Head` (`max_values`: Some(1), `max_size`: Some(5768), added: 6263, mode: `MaxEncodedLen`)
+	/// Storage: `FastUnstake::CounterForQueue` (r:1 w:1)
+	/// Proof: `FastUnstake::CounterForQueue` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn deregister() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1223`
+		//  Measured:  `1251`
 		//  Estimated: `7253`
-		// Minimum execution time: 43_943_000 picoseconds.
-		Weight::from_parts(45_842_000, 7253)
+		// Minimum execution time: 39_253_000 picoseconds.
+		Weight::from_parts(40_053_000, 7253)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: FastUnstake ErasToCheckPerBlock (r:0 w:1)
-	/// Proof: FastUnstake ErasToCheckPerBlock (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `FastUnstake::ErasToCheckPerBlock` (r:0 w:1)
+	/// Proof: `FastUnstake::ErasToCheckPerBlock` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn control() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_677_000 picoseconds.
-		Weight::from_parts(2_849_000, 0)
+		// Minimum execution time: 2_386_000 picoseconds.
+		Weight::from_parts(2_508_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/glutton/src/weights.rs b/substrate/frame/glutton/src/weights.rs
index cbc0fb022f5..b2e28dc488a 100644
--- a/substrate/frame/glutton/src/weights.rs
+++ b/substrate/frame/glutton/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_glutton
+//! Autogenerated weights for `pallet_glutton`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/glutton/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/glutton/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_glutton.
+/// Weight functions needed for `pallet_glutton`.
 pub trait WeightInfo {
 	fn initialize_pallet_grow(n: u32, ) -> Weight;
 	fn initialize_pallet_shrink(n: u32, ) -> Weight;
@@ -63,39 +62,39 @@ pub trait WeightInfo {
 	fn set_storage() -> Weight;
 }
 
-/// Weights for pallet_glutton using the Substrate node and recommended hardware.
+/// Weights for `pallet_glutton` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Glutton TrashDataCount (r:1 w:1)
-	/// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:0 w:1000)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashDataCount` (r:1 w:1)
+	/// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:0 w:1000)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn initialize_pallet_grow(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1489`
-		// Minimum execution time: 11_488_000 picoseconds.
-		Weight::from_parts(93_073_710, 1489)
-			// Standard Error: 22_390
-			.saturating_add(Weight::from_parts(9_572_012, 0).saturating_mul(n.into()))
+		// Minimum execution time: 8_443_000 picoseconds.
+		Weight::from_parts(103_698_651, 1489)
+			// Standard Error: 21_777
+			.saturating_add(Weight::from_parts(9_529_476, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
 	}
-	/// Storage: Glutton TrashDataCount (r:1 w:1)
-	/// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:0 w:1000)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashDataCount` (r:1 w:1)
+	/// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:0 w:1000)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn initialize_pallet_shrink(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `119`
 		//  Estimated: `1489`
-		// Minimum execution time: 11_378_000 picoseconds.
-		Weight::from_parts(5_591_508, 1489)
-			// Standard Error: 1_592
-			.saturating_add(Weight::from_parts(1_163_758, 0).saturating_mul(n.into()))
+		// Minimum execution time: 8_343_000 picoseconds.
+		Weight::from_parts(304_498, 1489)
+			// Standard Error: 1_568
+			.saturating_add(Weight::from_parts(1_146_553, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
@@ -105,119 +104,119 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 669_000 picoseconds.
-		Weight::from_parts(990_745, 0)
-			// Standard Error: 10
-			.saturating_add(Weight::from_parts(105_224, 0).saturating_mul(i.into()))
+		// Minimum execution time: 656_000 picoseconds.
+		Weight::from_parts(1_875_128, 0)
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(103_381, 0).saturating_mul(i.into()))
 	}
-	/// Storage: Glutton TrashData (r:5000 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashData` (r:5000 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `i` is `[0, 5000]`.
 	fn waste_proof_size_some(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `119114 + i * (1022 ±0)`
 		//  Estimated: `990 + i * (3016 ±0)`
-		// Minimum execution time: 435_000 picoseconds.
-		Weight::from_parts(66_547_542, 990)
-			// Standard Error: 4_557
-			.saturating_add(Weight::from_parts(5_851_324, 0).saturating_mul(i.into()))
+		// Minimum execution time: 454_000 picoseconds.
+		Weight::from_parts(521_000, 990)
+			// Standard Error: 1_940
+			.saturating_add(Weight::from_parts(5_729_831, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into()))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:1737 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:1737 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	fn on_idle_high_proof_waste() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1900497`
 		//  Estimated: `5239782`
-		// Minimum execution time: 67_699_845_000 picoseconds.
-		Weight::from_parts(67_893_204_000, 5239782)
+		// Minimum execution time: 55_403_909_000 picoseconds.
+		Weight::from_parts(55_472_412_000, 5239782)
 			.saturating_add(T::DbWeight::get().reads(1739_u64))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:5 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:5 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	fn on_idle_low_proof_waste() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `9547`
 		//  Estimated: `16070`
-		// Minimum execution time: 122_297_527_000 picoseconds.
-		Weight::from_parts(122_394_818_000, 16070)
+		// Minimum execution time: 97_959_007_000 picoseconds.
+		Weight::from_parts(98_030_476_000, 16070)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn empty_on_idle() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1493`
-		// Minimum execution time: 5_882_000 picoseconds.
-		Weight::from_parts(6_138_000, 1493)
+		// Minimum execution time: 5_011_000 picoseconds.
+		Weight::from_parts(5_183_000, 1493)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
-	/// Storage: Glutton Compute (r:0 w:1)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Compute` (r:0 w:1)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set_compute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_830_000 picoseconds.
-		Weight::from_parts(8_366_000, 0)
+		// Minimum execution time: 5_591_000 picoseconds.
+		Weight::from_parts(5_970_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Glutton Storage (r:0 w:1)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:0 w:1)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set_storage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_933_000 picoseconds.
-		Weight::from_parts(8_213_000, 0)
+		// Minimum execution time: 5_689_000 picoseconds.
+		Weight::from_parts(6_038_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Glutton TrashDataCount (r:1 w:1)
-	/// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:0 w:1000)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashDataCount` (r:1 w:1)
+	/// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:0 w:1000)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn initialize_pallet_grow(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1489`
-		// Minimum execution time: 11_488_000 picoseconds.
-		Weight::from_parts(93_073_710, 1489)
-			// Standard Error: 22_390
-			.saturating_add(Weight::from_parts(9_572_012, 0).saturating_mul(n.into()))
+		// Minimum execution time: 8_443_000 picoseconds.
+		Weight::from_parts(103_698_651, 1489)
+			// Standard Error: 21_777
+			.saturating_add(Weight::from_parts(9_529_476, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
 	}
-	/// Storage: Glutton TrashDataCount (r:1 w:1)
-	/// Proof: Glutton TrashDataCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:0 w:1000)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashDataCount` (r:1 w:1)
+	/// Proof: `Glutton::TrashDataCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:0 w:1000)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn initialize_pallet_shrink(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `119`
 		//  Estimated: `1489`
-		// Minimum execution time: 11_378_000 picoseconds.
-		Weight::from_parts(5_591_508, 1489)
-			// Standard Error: 1_592
-			.saturating_add(Weight::from_parts(1_163_758, 0).saturating_mul(n.into()))
+		// Minimum execution time: 8_343_000 picoseconds.
+		Weight::from_parts(304_498, 1489)
+			// Standard Error: 1_568
+			.saturating_add(Weight::from_parts(1_146_553, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
@@ -227,83 +226,83 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 669_000 picoseconds.
-		Weight::from_parts(990_745, 0)
-			// Standard Error: 10
-			.saturating_add(Weight::from_parts(105_224, 0).saturating_mul(i.into()))
+		// Minimum execution time: 656_000 picoseconds.
+		Weight::from_parts(1_875_128, 0)
+			// Standard Error: 8
+			.saturating_add(Weight::from_parts(103_381, 0).saturating_mul(i.into()))
 	}
-	/// Storage: Glutton TrashData (r:5000 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::TrashData` (r:5000 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	/// The range of component `i` is `[0, 5000]`.
 	fn waste_proof_size_some(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `119114 + i * (1022 ±0)`
 		//  Estimated: `990 + i * (3016 ±0)`
-		// Minimum execution time: 435_000 picoseconds.
-		Weight::from_parts(66_547_542, 990)
-			// Standard Error: 4_557
-			.saturating_add(Weight::from_parts(5_851_324, 0).saturating_mul(i.into()))
+		// Minimum execution time: 454_000 picoseconds.
+		Weight::from_parts(521_000, 990)
+			// Standard Error: 1_940
+			.saturating_add(Weight::from_parts(5_729_831, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3016).saturating_mul(i.into()))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:1737 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:1737 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	fn on_idle_high_proof_waste() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1900497`
 		//  Estimated: `5239782`
-		// Minimum execution time: 67_699_845_000 picoseconds.
-		Weight::from_parts(67_893_204_000, 5239782)
+		// Minimum execution time: 55_403_909_000 picoseconds.
+		Weight::from_parts(55_472_412_000, 5239782)
 			.saturating_add(RocksDbWeight::get().reads(1739_u64))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton TrashData (r:5 w:0)
-	/// Proof: Glutton TrashData (max_values: Some(65000), max_size: Some(1036), added: 3016, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::TrashData` (r:5 w:0)
+	/// Proof: `Glutton::TrashData` (`max_values`: Some(65000), `max_size`: Some(1036), added: 3016, mode: `MaxEncodedLen`)
 	fn on_idle_low_proof_waste() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `9547`
 		//  Estimated: `16070`
-		// Minimum execution time: 122_297_527_000 picoseconds.
-		Weight::from_parts(122_394_818_000, 16070)
+		// Minimum execution time: 97_959_007_000 picoseconds.
+		Weight::from_parts(98_030_476_000, 16070)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 	}
-	/// Storage: Glutton Storage (r:1 w:0)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Glutton Compute (r:1 w:0)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:1 w:0)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Glutton::Compute` (r:1 w:0)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn empty_on_idle() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1493`
-		// Minimum execution time: 5_882_000 picoseconds.
-		Weight::from_parts(6_138_000, 1493)
+		// Minimum execution time: 5_011_000 picoseconds.
+		Weight::from_parts(5_183_000, 1493)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
-	/// Storage: Glutton Compute (r:0 w:1)
-	/// Proof: Glutton Compute (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Compute` (r:0 w:1)
+	/// Proof: `Glutton::Compute` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set_compute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_830_000 picoseconds.
-		Weight::from_parts(8_366_000, 0)
+		// Minimum execution time: 5_591_000 picoseconds.
+		Weight::from_parts(5_970_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Glutton Storage (r:0 w:1)
-	/// Proof: Glutton Storage (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Glutton::Storage` (r:0 w:1)
+	/// Proof: `Glutton::Storage` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set_storage() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_933_000 picoseconds.
-		Weight::from_parts(8_213_000, 0)
+		// Minimum execution time: 5_689_000 picoseconds.
+		Weight::from_parts(6_038_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/grandpa/src/mock.rs b/substrate/frame/grandpa/src/mock.rs
index 5d48f974c31..e1be487dbb7 100644
--- a/substrate/frame/grandpa/src/mock.rs
+++ b/substrate/frame/grandpa/src/mock.rs
@@ -35,11 +35,8 @@ use sp_consensus_grandpa::{RoundNumber, SetId, GRANDPA_ENGINE_ID};
 use sp_core::{crypto::KeyTypeId, H256};
 use sp_keyring::Ed25519Keyring;
 use sp_runtime::{
-	curve::PiecewiseLinear,
-	impl_opaque_keys,
-	testing::{TestXt, UintAuthorityId},
-	traits::OpaqueKeys,
-	BuildStorage, DigestItem, Perbill,
+	curve::PiecewiseLinear, generic::UncheckedExtrinsic, impl_opaque_keys,
+	testing::UintAuthorityId, traits::OpaqueKeys, BuildStorage, DigestItem, Perbill,
 };
 use sp_staking::{EraIndex, SessionIndex};
 
@@ -77,7 +74,7 @@ where
 	RuntimeCall: From<C>,
 {
 	type OverarchingCall = RuntimeCall;
-	type Extrinsic = TestXt<RuntimeCall, ()>;
+	type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 }
 
 parameter_types! {
diff --git a/substrate/frame/identity/src/weights.rs b/substrate/frame/identity/src/weights.rs
index 1feb8252c84..81de520d7f2 100644
--- a/substrate/frame/identity/src/weights.rs
+++ b/substrate/frame/identity/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_identity
+//! Autogenerated weights for `pallet_identity`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/identity/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/identity/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_identity.
+/// Weight functions needed for `pallet_identity`.
 pub trait WeightInfo {
 	fn add_registrar(r: u32, ) -> Weight;
 	fn set_identity(r: u32, ) -> Weight;
@@ -77,278 +76,274 @@ pub trait WeightInfo {
 	fn remove_dangling_username() -> Weight;
 }
 
-/// Weights for pallet_identity using the Substrate node and recommended hardware.
+/// Weights for `pallet_identity` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn add_registrar(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 11_683_000 picoseconds.
-		Weight::from_parts(12_515_830, 2626)
-			// Standard Error: 2_154
-			.saturating_add(Weight::from_parts(147_919, 0).saturating_mul(r.into()))
+		// Minimum execution time: 8_857_000 picoseconds.
+		Weight::from_parts(9_331_464, 2626)
+			// Standard Error: 1_745
+			.saturating_add(Weight::from_parts(94_096, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
-	fn set_identity(r: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `442 + r * (5 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 32_949_000 picoseconds.
-		Weight::from_parts(31_329_634, 11003)
-			// Standard Error: 4_496
-			.saturating_add(Weight::from_parts(203_570, 0).saturating_mul(r.into()))
+	fn set_identity(_r: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `6978 + r * (5 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 96_522_000 picoseconds.
+		Weight::from_parts(102_738_605, 11037)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:100 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:100 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn set_subs_new(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
-		//  Estimated: `11003 + s * (2589 ±0)`
-		// Minimum execution time: 9_157_000 picoseconds.
-		Weight::from_parts(24_917_444, 11003)
-			// Standard Error: 4_554
-			.saturating_add(Weight::from_parts(3_279_868, 0).saturating_mul(s.into()))
+		//  Estimated: `11037 + s * (2589 ±0)`
+		// Minimum execution time: 9_112_000 picoseconds.
+		Weight::from_parts(22_676_873, 11037)
+			// Standard Error: 6_494
+			.saturating_add(Weight::from_parts(3_279_196, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(s.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 			.saturating_add(Weight::from_parts(0, 2589).saturating_mul(s.into()))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 100]`.
 	fn set_subs_old(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (32 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 9_240_000 picoseconds.
-		Weight::from_parts(23_326_035, 11003)
-			// Standard Error: 3_664
-			.saturating_add(Weight::from_parts(1_439_873, 0).saturating_mul(p.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 8_902_000 picoseconds.
+		Weight::from_parts(21_168_031, 11037)
+			// Standard Error: 3_576
+			.saturating_add(Weight::from_parts(1_431_542, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
-	fn clear_identity(r: u32, s: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 55_687_000 picoseconds.
-		Weight::from_parts(30_695_182, 11003)
-			// Standard Error: 9_921
-			.saturating_add(Weight::from_parts(162_357, 0).saturating_mul(r.into()))
-			// Standard Error: 1_937
-			.saturating_add(Weight::from_parts(1_427_998, 0).saturating_mul(s.into()))
+	fn clear_identity(_r: u32, s: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `7070 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 52_468_000 picoseconds.
+		Weight::from_parts(56_065_452, 11037)
+			// Standard Error: 2_274
+			.saturating_add(Weight::from_parts(1_399_051, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn request_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `367 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 34_876_000 picoseconds.
-		Weight::from_parts(32_207_018, 11003)
-			// Standard Error: 5_247
-			.saturating_add(Weight::from_parts(249_156, 0).saturating_mul(r.into()))
+		//  Measured:  `6968 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 67_951_000 picoseconds.
+		Weight::from_parts(69_591_058, 11037)
+			// Standard Error: 4_420
+			.saturating_add(Weight::from_parts(209_239, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn cancel_request(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `398 + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 30_689_000 picoseconds.
-		Weight::from_parts(31_967_170, 11003)
-			// Standard Error: 5_387
-			.saturating_add(Weight::from_parts(42_676, 0).saturating_mul(r.into()))
+		//  Measured:  `6999`
+		//  Estimated: `11037`
+		// Minimum execution time: 67_818_000 picoseconds.
+		Weight::from_parts(70_356_319, 11037)
+			// Standard Error: 5_116
+			.saturating_add(Weight::from_parts(4_264, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fee(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_357_000 picoseconds.
-		Weight::from_parts(7_932_950, 2626)
-			// Standard Error: 1_804
-			.saturating_add(Weight::from_parts(132_653, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_096_000 picoseconds.
+		Weight::from_parts(6_470_752, 2626)
+			// Standard Error: 1_328
+			.saturating_add(Weight::from_parts(94_764, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_account_id(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_437_000 picoseconds.
-		Weight::from_parts(8_051_889, 2626)
-			// Standard Error: 1_997
-			.saturating_add(Weight::from_parts(129_592, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_278_000 picoseconds.
+		Weight::from_parts(6_678_997, 2626)
+			// Standard Error: 1_396
+			.saturating_add(Weight::from_parts(87_207, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fields(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_385_000 picoseconds.
-		Weight::from_parts(7_911_589, 2626)
-			// Standard Error: 1_791
-			.saturating_add(Weight::from_parts(125_788, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_130_000 picoseconds.
+		Weight::from_parts(6_516_146, 2626)
+			// Standard Error: 1_356
+			.saturating_add(Weight::from_parts(88_455, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn provide_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `445 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 24_073_000 picoseconds.
-		Weight::from_parts(17_817_684, 11003)
-			// Standard Error: 8_612
-			.saturating_add(Weight::from_parts(406_251, 0).saturating_mul(r.into()))
+		//  Measured:  `7046 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 87_100_000 picoseconds.
+		Weight::from_parts(87_601_945, 11037)
+			// Standard Error: 22_724
+			.saturating_add(Weight::from_parts(458_296, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
 	fn kill_identity(r: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 73_981_000 picoseconds.
-		Weight::from_parts(51_684_057, 11003)
-			// Standard Error: 12_662
-			.saturating_add(Weight::from_parts(145_285, 0).saturating_mul(r.into()))
-			// Standard Error: 2_472
-			.saturating_add(Weight::from_parts(1_421_039, 0).saturating_mul(s.into()))
+		//  Measured:  `7277 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 65_925_000 picoseconds.
+		Weight::from_parts(70_786_250, 11037)
+			// Standard Error: 19_680
+			.saturating_add(Weight::from_parts(29_782, 0).saturating_mul(r.into()))
+			// Standard Error: 3_839
+			.saturating_add(Weight::from_parts(1_377_604, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn add_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `475 + s * (36 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 29_367_000 picoseconds.
-		Weight::from_parts(34_214_998, 11003)
-			// Standard Error: 1_522
-			.saturating_add(Weight::from_parts(114_551, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 25_916_000 picoseconds.
+		Weight::from_parts(29_781_270, 11037)
+			// Standard Error: 1_326
+			.saturating_add(Weight::from_parts(101_515, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn rename_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `591 + s * (3 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 12_384_000 picoseconds.
-		Weight::from_parts(14_417_903, 11003)
-			// Standard Error: 539
-			.saturating_add(Weight::from_parts(38_371, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 12_142_000 picoseconds.
+		Weight::from_parts(14_179_741, 11037)
+			// Standard Error: 538
+			.saturating_add(Weight::from_parts(38_847, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn remove_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `638 + s * (35 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 33_327_000 picoseconds.
-		Weight::from_parts(36_208_941, 11003)
-			// Standard Error: 1_240
-			.saturating_add(Weight::from_parts(105_805, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 29_327_000 picoseconds.
+		Weight::from_parts(32_163_402, 11037)
+			// Standard Error: 1_047
+			.saturating_add(Weight::from_parts(87_159, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn quit_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `704 + s * (37 ±0)`
 		//  Estimated: `6723`
-		// Minimum execution time: 23_764_000 picoseconds.
-		Weight::from_parts(26_407_731, 6723)
-			// Standard Error: 1_025
-			.saturating_add(Weight::from_parts(101_112, 0).saturating_mul(s.into()))
+		// Minimum execution time: 22_380_000 picoseconds.
+		Weight::from_parts(24_557_574, 6723)
+			// Standard Error: 1_131
+			.saturating_add(Weight::from_parts(86_358, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -358,367 +353,359 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 13_873_000 picoseconds.
-		Weight::from_parts(13_873_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(1))
+		// Minimum execution time: 6_791_000 picoseconds.
+		Weight::from_parts(7_126_000, 0)
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: `Identity::UsernameAuthorities` (r:0 w:1)
+	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn remove_username_authority() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 10_653_000 picoseconds.
-		Weight::from_parts(10_653_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(1))
+		//  Measured:  `80`
+		//  Estimated: `3517`
+		// Minimum execution time: 9_657_000 picoseconds.
+		Weight::from_parts(9_922_000, 3517)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::PendingUsernames` (r:1 w:0)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_username_for() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `80`
 		//  Estimated: `11037`
-		// Minimum execution time: 75_928_000 picoseconds.
-		Weight::from_parts(75_928_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(T::DbWeight::get().reads(3))
-			.saturating_add(T::DbWeight::get().writes(3))
+		// Minimum execution time: 67_928_000 picoseconds.
+		Weight::from_parts(69_993_000, 11037)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:0 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn accept_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `115`
 		//  Estimated: `11037`
-		// Minimum execution time: 38_157_000 picoseconds.
-		Weight::from_parts(38_157_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(3))
+		// Minimum execution time: 20_496_000 picoseconds.
+		Weight::from_parts(20_971_000, 11037)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn remove_expired_approval() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
-		//  Estimated: `3542`
-		// Minimum execution time: 46_821_000 picoseconds.
-		Weight::from_parts(46_821_000, 0)
-			.saturating_add(Weight::from_parts(0, 3542))
-			.saturating_add(T::DbWeight::get().reads(1))
-			.saturating_add(T::DbWeight::get().writes(1))
+		//  Measured:  `115`
+		//  Estimated: `3550`
+		// Minimum execution time: 13_845_000 picoseconds.
+		Weight::from_parts(16_201_000, 3550)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:0)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_primary_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `247`
+		//  Measured:  `257`
 		//  Estimated: `11037`
-		// Minimum execution time: 22_515_000 picoseconds.
-		Weight::from_parts(22_515_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(1))
+		// Minimum execution time: 15_900_000 picoseconds.
+		Weight::from_parts(16_716_000, 11037)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:0)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn remove_dangling_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `126`
+		//  Measured:  `98`
 		//  Estimated: `11037`
-		// Minimum execution time: 15_997_000 picoseconds.
-		Weight::from_parts(15_997_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(1))
+		// Minimum execution time: 11_538_000 picoseconds.
+		Weight::from_parts(11_898_000, 11037)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn add_registrar(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `32 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 11_683_000 picoseconds.
-		Weight::from_parts(12_515_830, 2626)
-			// Standard Error: 2_154
-			.saturating_add(Weight::from_parts(147_919, 0).saturating_mul(r.into()))
+		// Minimum execution time: 8_857_000 picoseconds.
+		Weight::from_parts(9_331_464, 2626)
+			// Standard Error: 1_745
+			.saturating_add(Weight::from_parts(94_096, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
-	fn set_identity(r: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `442 + r * (5 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 32_949_000 picoseconds.
-		Weight::from_parts(31_329_634, 11003)
-			// Standard Error: 4_496
-			.saturating_add(Weight::from_parts(203_570, 0).saturating_mul(r.into()))
+	fn set_identity(_r: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `6978 + r * (5 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 96_522_000 picoseconds.
+		Weight::from_parts(102_738_605, 11037)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:100 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:100 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn set_subs_new(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
-		//  Estimated: `11003 + s * (2589 ±0)`
-		// Minimum execution time: 9_157_000 picoseconds.
-		Weight::from_parts(24_917_444, 11003)
-			// Standard Error: 4_554
-			.saturating_add(Weight::from_parts(3_279_868, 0).saturating_mul(s.into()))
+		//  Estimated: `11037 + s * (2589 ±0)`
+		// Minimum execution time: 9_112_000 picoseconds.
+		Weight::from_parts(22_676_873, 11037)
+			// Standard Error: 6_494
+			.saturating_add(Weight::from_parts(3_279_196, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(s.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
 			.saturating_add(Weight::from_parts(0, 2589).saturating_mul(s.into()))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 100]`.
 	fn set_subs_old(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (32 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 9_240_000 picoseconds.
-		Weight::from_parts(23_326_035, 11003)
-			// Standard Error: 3_664
-			.saturating_add(Weight::from_parts(1_439_873, 0).saturating_mul(p.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 8_902_000 picoseconds.
+		Weight::from_parts(21_168_031, 11037)
+			// Standard Error: 3_576
+			.saturating_add(Weight::from_parts(1_431_542, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(p.into())))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
-	fn clear_identity(r: u32, s: u32, ) -> Weight {
-		// Proof Size summary in bytes:
-		//  Measured:  `469 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 55_687_000 picoseconds.
-		Weight::from_parts(30_695_182, 11003)
-			// Standard Error: 9_921
-			.saturating_add(Weight::from_parts(162_357, 0).saturating_mul(r.into()))
-			// Standard Error: 1_937
-			.saturating_add(Weight::from_parts(1_427_998, 0).saturating_mul(s.into()))
+	fn clear_identity(_r: u32, s: u32, ) -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `7070 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 52_468_000 picoseconds.
+		Weight::from_parts(56_065_452, 11037)
+			// Standard Error: 2_274
+			.saturating_add(Weight::from_parts(1_399_051, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn request_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `367 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 34_876_000 picoseconds.
-		Weight::from_parts(32_207_018, 11003)
-			// Standard Error: 5_247
-			.saturating_add(Weight::from_parts(249_156, 0).saturating_mul(r.into()))
+		//  Measured:  `6968 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 67_951_000 picoseconds.
+		Weight::from_parts(69_591_058, 11037)
+			// Standard Error: 4_420
+			.saturating_add(Weight::from_parts(209_239, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	fn cancel_request(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `398 + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 30_689_000 picoseconds.
-		Weight::from_parts(31_967_170, 11003)
-			// Standard Error: 5_387
-			.saturating_add(Weight::from_parts(42_676, 0).saturating_mul(r.into()))
+		//  Measured:  `6999`
+		//  Estimated: `11037`
+		// Minimum execution time: 67_818_000 picoseconds.
+		Weight::from_parts(70_356_319, 11037)
+			// Standard Error: 5_116
+			.saturating_add(Weight::from_parts(4_264, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fee(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_357_000 picoseconds.
-		Weight::from_parts(7_932_950, 2626)
-			// Standard Error: 1_804
-			.saturating_add(Weight::from_parts(132_653, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_096_000 picoseconds.
+		Weight::from_parts(6_470_752, 2626)
+			// Standard Error: 1_328
+			.saturating_add(Weight::from_parts(94_764, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_account_id(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_437_000 picoseconds.
-		Weight::from_parts(8_051_889, 2626)
-			// Standard Error: 1_997
-			.saturating_add(Weight::from_parts(129_592, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_278_000 picoseconds.
+		Weight::from_parts(6_678_997, 2626)
+			// Standard Error: 1_396
+			.saturating_add(Weight::from_parts(87_207, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:1)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:1)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn set_fields(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `89 + r * (57 ±0)`
 		//  Estimated: `2626`
-		// Minimum execution time: 7_385_000 picoseconds.
-		Weight::from_parts(7_911_589, 2626)
-			// Standard Error: 1_791
-			.saturating_add(Weight::from_parts(125_788, 0).saturating_mul(r.into()))
+		// Minimum execution time: 6_130_000 picoseconds.
+		Weight::from_parts(6_516_146, 2626)
+			// Standard Error: 1_356
+			.saturating_add(Weight::from_parts(88_455, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity Registrars (r:1 w:0)
-	/// Proof: Identity Registrars (max_values: Some(1), max_size: Some(1141), added: 1636, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
+	/// Storage: `Identity::Registrars` (r:1 w:0)
+	/// Proof: `Identity::Registrars` (`max_values`: Some(1), `max_size`: Some(1141), added: 1636, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 19]`.
 	fn provide_judgement(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `445 + r * (57 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 24_073_000 picoseconds.
-		Weight::from_parts(17_817_684, 11003)
-			// Standard Error: 8_612
-			.saturating_add(Weight::from_parts(406_251, 0).saturating_mul(r.into()))
+		//  Measured:  `7046 + r * (57 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 87_100_000 picoseconds.
+		Weight::from_parts(87_601_945, 11037)
+			// Standard Error: 22_724
+			.saturating_add(Weight::from_parts(458_296, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: Identity IdentityOf (r:1 w:1)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:0 w:100)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::IdentityOf` (r:1 w:1)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:0 w:100)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[1, 20]`.
 	/// The range of component `s` is `[0, 100]`.
 	fn kill_identity(r: u32, s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `676 + r * (5 ±0) + s * (32 ±0) + x * (66 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 73_981_000 picoseconds.
-		Weight::from_parts(51_684_057, 11003)
-			// Standard Error: 12_662
-			.saturating_add(Weight::from_parts(145_285, 0).saturating_mul(r.into()))
-			// Standard Error: 2_472
-			.saturating_add(Weight::from_parts(1_421_039, 0).saturating_mul(s.into()))
+		//  Measured:  `7277 + r * (5 ±0) + s * (32 ±0)`
+		//  Estimated: `11037`
+		// Minimum execution time: 65_925_000 picoseconds.
+		Weight::from_parts(70_786_250, 11037)
+			// Standard Error: 19_680
+			.saturating_add(Weight::from_parts(29_782, 0).saturating_mul(r.into()))
+			// Standard Error: 3_839
+			.saturating_add(Weight::from_parts(1_377_604, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn add_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `475 + s * (36 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 29_367_000 picoseconds.
-		Weight::from_parts(34_214_998, 11003)
-			// Standard Error: 1_522
-			.saturating_add(Weight::from_parts(114_551, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 25_916_000 picoseconds.
+		Weight::from_parts(29_781_270, 11037)
+			// Standard Error: 1_326
+			.saturating_add(Weight::from_parts(101_515, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn rename_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `591 + s * (3 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 12_384_000 picoseconds.
-		Weight::from_parts(14_417_903, 11003)
-			// Standard Error: 539
-			.saturating_add(Weight::from_parts(38_371, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 12_142_000 picoseconds.
+		Weight::from_parts(14_179_741, 11037)
+			// Standard Error: 538
+			.saturating_add(Weight::from_parts(38_847, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Identity IdentityOf (r:1 w:0)
-	/// Proof: Identity IdentityOf (max_values: None, max_size: Some(7538), added: 10013, mode: MaxEncodedLen)
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
+	/// Storage: `Identity::IdentityOf` (r:1 w:0)
+	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 100]`.
 	fn remove_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `638 + s * (35 ±0)`
-		//  Estimated: `11003`
-		// Minimum execution time: 33_327_000 picoseconds.
-		Weight::from_parts(36_208_941, 11003)
-			// Standard Error: 1_240
-			.saturating_add(Weight::from_parts(105_805, 0).saturating_mul(s.into()))
+		//  Estimated: `11037`
+		// Minimum execution time: 29_327_000 picoseconds.
+		Weight::from_parts(32_163_402, 11037)
+			// Standard Error: 1_047
+			.saturating_add(Weight::from_parts(87_159, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Identity SuperOf (r:1 w:1)
-	/// Proof: Identity SuperOf (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: Identity SubsOf (r:1 w:1)
-	/// Proof: Identity SubsOf (max_values: None, max_size: Some(3258), added: 5733, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Identity::SuperOf` (r:1 w:1)
+	/// Proof: `Identity::SuperOf` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::SubsOf` (r:1 w:1)
+	/// Proof: `Identity::SubsOf` (`max_values`: None, `max_size`: Some(3258), added: 5733, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 99]`.
 	fn quit_sub(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `704 + s * (37 ±0)`
 		//  Estimated: `6723`
-		// Minimum execution time: 23_764_000 picoseconds.
-		Weight::from_parts(26_407_731, 6723)
-			// Standard Error: 1_025
-			.saturating_add(Weight::from_parts(101_112, 0).saturating_mul(s.into()))
+		// Minimum execution time: 22_380_000 picoseconds.
+		Weight::from_parts(24_557_574, 6723)
+			// Standard Error: 1_131
+			.saturating_add(Weight::from_parts(86_358, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -728,92 +715,88 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 13_873_000 picoseconds.
-		Weight::from_parts(13_873_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		// Minimum execution time: 6_791_000 picoseconds.
+		Weight::from_parts(7_126_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: `Identity::UsernameAuthorities` (r:0 w:1)
+	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn remove_username_authority() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 10_653_000 picoseconds.
-		Weight::from_parts(10_653_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		//  Measured:  `80`
+		//  Estimated: `3517`
+		// Minimum execution time: 9_657_000 picoseconds.
+		Weight::from_parts(9_922_000, 3517)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::UsernameAuthorities` (r:1 w:1)
 	/// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Identity::PendingUsernames` (r:1 w:0)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_username_for() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `80`
 		//  Estimated: `11037`
-		// Minimum execution time: 75_928_000 picoseconds.
-		Weight::from_parts(75_928_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(RocksDbWeight::get().reads(3))
-			.saturating_add(RocksDbWeight::get().writes(3))
+		// Minimum execution time: 67_928_000 picoseconds.
+		Weight::from_parts(69_993_000, 11037)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::AccountOfUsername` (r:0 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn accept_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `115`
 		//  Estimated: `11037`
-		// Minimum execution time: 38_157_000 picoseconds.
-		Weight::from_parts(38_157_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(RocksDbWeight::get().reads(2))
-			.saturating_add(RocksDbWeight::get().writes(3))
+		// Minimum execution time: 20_496_000 picoseconds.
+		Weight::from_parts(20_971_000, 11037)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Identity::PendingUsernames` (r:1 w:1)
-	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(77), added: 2552, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
 	fn remove_expired_approval() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
-		//  Estimated: `3542`
-		// Minimum execution time: 46_821_000 picoseconds.
-		Weight::from_parts(46_821_000, 0)
-			.saturating_add(Weight::from_parts(0, 3542))
-			.saturating_add(RocksDbWeight::get().reads(1))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		//  Measured:  `115`
+		//  Estimated: `3550`
+		// Minimum execution time: 13_845_000 picoseconds.
+		Weight::from_parts(16_201_000, 3550)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:0)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:1)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn set_primary_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `247`
+		//  Measured:  `257`
 		//  Estimated: `11037`
-		// Minimum execution time: 22_515_000 picoseconds.
-		Weight::from_parts(22_515_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(RocksDbWeight::get().reads(2))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		// Minimum execution time: 15_900_000 picoseconds.
+		Weight::from_parts(16_716_000, 11037)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Identity::AccountOfUsername` (r:1 w:1)
-	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	/// Storage: `Identity::IdentityOf` (r:1 w:0)
 	/// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`)
 	fn remove_dangling_username() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `126`
+		//  Measured:  `98`
 		//  Estimated: `11037`
-		// Minimum execution time: 15_997_000 picoseconds.
-		Weight::from_parts(15_997_000, 0)
-			.saturating_add(Weight::from_parts(0, 11037))
-			.saturating_add(RocksDbWeight::get().reads(2))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		// Minimum execution time: 11_538_000 picoseconds.
+		Weight::from_parts(11_898_000, 11037)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/im-online/src/mock.rs b/substrate/frame/im-online/src/mock.rs
index 9dad148b10f..c0ba9143e13 100644
--- a/substrate/frame/im-online/src/mock.rs
+++ b/substrate/frame/im-online/src/mock.rs
@@ -27,7 +27,7 @@ use frame_support::{
 use pallet_session::historical as pallet_session_historical;
 use sp_core::H256;
 use sp_runtime::{
-	testing::{TestXt, UintAuthorityId},
+	testing::UintAuthorityId,
 	traits::{BlakeTwo256, ConvertInto, IdentityLookup},
 	BuildStorage, Permill,
 };
@@ -78,7 +78,7 @@ impl pallet_session::historical::SessionManager<u64, u64> for TestSessionManager
 }
 
 /// An extrinsic type used for tests.
-pub type Extrinsic = TestXt<RuntimeCall, ()>;
+pub type Extrinsic = sp_runtime::generic::UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 type IdentificationTuple = (u64, u64);
 type Offence = crate::UnresponsivenessOffence<IdentificationTuple>;
 
diff --git a/substrate/frame/im-online/src/tests.rs b/substrate/frame/im-online/src/tests.rs
index 79036760c2d..7efca926eb0 100644
--- a/substrate/frame/im-online/src/tests.rs
+++ b/substrate/frame/im-online/src/tests.rs
@@ -231,7 +231,7 @@ fn should_generate_heartbeats() {
 
 		// check stuff about the transaction.
 		let ex: Extrinsic = Decode::decode(&mut &*transaction).unwrap();
-		let heartbeat = match ex.call {
+		let heartbeat = match ex.function {
 			crate::mock::RuntimeCall::ImOnline(crate::Call::heartbeat { heartbeat, .. }) =>
 				heartbeat,
 			e => panic!("Unexpected call: {:?}", e),
@@ -345,7 +345,7 @@ fn should_not_send_a_report_if_already_online() {
 		assert_eq!(pool_state.read().transactions.len(), 0);
 		// check stuff about the transaction.
 		let ex: Extrinsic = Decode::decode(&mut &*transaction).unwrap();
-		let heartbeat = match ex.call {
+		let heartbeat = match ex.function {
 			crate::mock::RuntimeCall::ImOnline(crate::Call::heartbeat { heartbeat, .. }) =>
 				heartbeat,
 			e => panic!("Unexpected call: {:?}", e),
diff --git a/substrate/frame/im-online/src/weights.rs b/substrate/frame/im-online/src/weights.rs
index c3db02af257..11357b1e7b7 100644
--- a/substrate/frame/im-online/src/weights.rs
+++ b/substrate/frame/im-online/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_im_online
+//! Autogenerated weights for `pallet_im_online`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/im-online/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/im-online/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,60 +49,60 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_im_online.
+/// Weight functions needed for `pallet_im_online`.
 pub trait WeightInfo {
 	fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight;
 }
 
-/// Weights for pallet_im_online using the Substrate node and recommended hardware.
+/// Weights for `pallet_im_online` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Session Validators (r:1 w:0)
-	/// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Session CurrentIndex (r:1 w:0)
-	/// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ImOnline Keys (r:1 w:0)
-	/// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen)
-	/// Storage: ImOnline ReceivedHeartbeats (r:1 w:1)
-	/// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen)
-	/// Storage: ImOnline AuthoredBlocks (r:1 w:0)
-	/// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
+	/// Storage: `Session::Validators` (r:1 w:0)
+	/// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::CurrentIndex` (r:1 w:0)
+	/// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ImOnline::Keys` (r:1 w:0)
+	/// Proof: `ImOnline::Keys` (`max_values`: Some(1), `max_size`: Some(320002), added: 320497, mode: `MaxEncodedLen`)
+	/// Storage: `ImOnline::ReceivedHeartbeats` (r:1 w:1)
+	/// Proof: `ImOnline::ReceivedHeartbeats` (`max_values`: None, `max_size`: Some(25), added: 2500, mode: `MaxEncodedLen`)
+	/// Storage: `ImOnline::AuthoredBlocks` (r:1 w:0)
+	/// Proof: `ImOnline::AuthoredBlocks` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
 	/// The range of component `k` is `[1, 1000]`.
 	fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `295 + k * (32 ±0)`
+		//  Measured:  `327 + k * (32 ±0)`
 		//  Estimated: `321487 + k * (1761 ±0)`
-		// Minimum execution time: 80_568_000 picoseconds.
-		Weight::from_parts(95_175_595, 321487)
-			// Standard Error: 627
-			.saturating_add(Weight::from_parts(39_094, 0).saturating_mul(k.into()))
+		// Minimum execution time: 65_515_000 picoseconds.
+		Weight::from_parts(74_765_329, 321487)
+			// Standard Error: 500
+			.saturating_add(Weight::from_parts(39_171, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Session Validators (r:1 w:0)
-	/// Proof Skipped: Session Validators (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Session CurrentIndex (r:1 w:0)
-	/// Proof Skipped: Session CurrentIndex (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: ImOnline Keys (r:1 w:0)
-	/// Proof: ImOnline Keys (max_values: Some(1), max_size: Some(320002), added: 320497, mode: MaxEncodedLen)
-	/// Storage: ImOnline ReceivedHeartbeats (r:1 w:1)
-	/// Proof: ImOnline ReceivedHeartbeats (max_values: None, max_size: Some(25), added: 2500, mode: MaxEncodedLen)
-	/// Storage: ImOnline AuthoredBlocks (r:1 w:0)
-	/// Proof: ImOnline AuthoredBlocks (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen)
+	/// Storage: `Session::Validators` (r:1 w:0)
+	/// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::CurrentIndex` (r:1 w:0)
+	/// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `ImOnline::Keys` (r:1 w:0)
+	/// Proof: `ImOnline::Keys` (`max_values`: Some(1), `max_size`: Some(320002), added: 320497, mode: `MaxEncodedLen`)
+	/// Storage: `ImOnline::ReceivedHeartbeats` (r:1 w:1)
+	/// Proof: `ImOnline::ReceivedHeartbeats` (`max_values`: None, `max_size`: Some(25), added: 2500, mode: `MaxEncodedLen`)
+	/// Storage: `ImOnline::AuthoredBlocks` (r:1 w:0)
+	/// Proof: `ImOnline::AuthoredBlocks` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`)
 	/// The range of component `k` is `[1, 1000]`.
 	fn validate_unsigned_and_then_heartbeat(k: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `295 + k * (32 ±0)`
+		//  Measured:  `327 + k * (32 ±0)`
 		//  Estimated: `321487 + k * (1761 ±0)`
-		// Minimum execution time: 80_568_000 picoseconds.
-		Weight::from_parts(95_175_595, 321487)
-			// Standard Error: 627
-			.saturating_add(Weight::from_parts(39_094, 0).saturating_mul(k.into()))
+		// Minimum execution time: 65_515_000 picoseconds.
+		Weight::from_parts(74_765_329, 321487)
+			// Standard Error: 500
+			.saturating_add(Weight::from_parts(39_171, 0).saturating_mul(k.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 1761).saturating_mul(k.into()))
diff --git a/substrate/frame/indices/src/weights.rs b/substrate/frame/indices/src/weights.rs
index d081cc738b1..6b571164eb6 100644
--- a/substrate/frame/indices/src/weights.rs
+++ b/substrate/frame/indices/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_indices
+//! Autogenerated weights for `pallet_indices`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/indices/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/indices/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_indices.
+/// Weight functions needed for `pallet_indices`.
 pub trait WeightInfo {
 	fn claim() -> Weight;
 	fn transfer() -> Weight;
@@ -59,128 +58,128 @@ pub trait WeightInfo {
 	fn freeze() -> Weight;
 }
 
-/// Weights for pallet_indices using the Substrate node and recommended hardware.
+/// Weights for `pallet_indices` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn claim() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3534`
-		// Minimum execution time: 25_491_000 picoseconds.
-		Weight::from_parts(26_456_000, 3534)
+		// Minimum execution time: 20_825_000 picoseconds.
+		Weight::from_parts(21_507_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3593`
-		// Minimum execution time: 38_027_000 picoseconds.
-		Weight::from_parts(38_749_000, 3593)
+		// Minimum execution time: 31_091_000 picoseconds.
+		Weight::from_parts(31_923_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn free() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3534`
-		// Minimum execution time: 26_652_000 picoseconds.
-		Weight::from_parts(27_273_000, 3534)
+		// Minimum execution time: 21_832_000 picoseconds.
+		Weight::from_parts(22_436_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3593`
-		// Minimum execution time: 29_464_000 picoseconds.
-		Weight::from_parts(30_959_000, 3593)
+		// Minimum execution time: 23_876_000 picoseconds.
+		Weight::from_parts(24_954_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn freeze() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3534`
-		// Minimum execution time: 29_015_000 picoseconds.
-		Weight::from_parts(29_714_000, 3534)
+		// Minimum execution time: 22_954_000 picoseconds.
+		Weight::from_parts(23_792_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn claim() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3534`
-		// Minimum execution time: 25_491_000 picoseconds.
-		Weight::from_parts(26_456_000, 3534)
+		// Minimum execution time: 20_825_000 picoseconds.
+		Weight::from_parts(21_507_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3593`
-		// Minimum execution time: 38_027_000 picoseconds.
-		Weight::from_parts(38_749_000, 3593)
+		// Minimum execution time: 31_091_000 picoseconds.
+		Weight::from_parts(31_923_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn free() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3534`
-		// Minimum execution time: 26_652_000 picoseconds.
-		Weight::from_parts(27_273_000, 3534)
+		// Minimum execution time: 21_832_000 picoseconds.
+		Weight::from_parts(22_436_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn force_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `275`
 		//  Estimated: `3593`
-		// Minimum execution time: 29_464_000 picoseconds.
-		Weight::from_parts(30_959_000, 3593)
+		// Minimum execution time: 23_876_000 picoseconds.
+		Weight::from_parts(24_954_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Indices Accounts (r:1 w:1)
-	/// Proof: Indices Accounts (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Indices::Accounts` (r:1 w:1)
+	/// Proof: `Indices::Accounts` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn freeze() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `172`
 		//  Estimated: `3534`
-		// Minimum execution time: 29_015_000 picoseconds.
-		Weight::from_parts(29_714_000, 3534)
+		// Minimum execution time: 22_954_000 picoseconds.
+		Weight::from_parts(23_792_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/lottery/src/weights.rs b/substrate/frame/lottery/src/weights.rs
index 3b4e5623753..7e56cdf90db 100644
--- a/substrate/frame/lottery/src/weights.rs
+++ b/substrate/frame/lottery/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_lottery
+//! Autogenerated weights for `pallet_lottery`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/lottery/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/lottery/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_lottery.
+/// Weight functions needed for `pallet_lottery`.
 pub trait WeightInfo {
 	fn buy_ticket() -> Weight;
 	fn set_calls(n: u32, ) -> Weight;
@@ -60,214 +59,222 @@ pub trait WeightInfo {
 	fn on_initialize_repeat() -> Weight;
 }
 
-/// Weights for pallet_lottery using the Substrate node and recommended hardware.
+/// Weights for `pallet_lottery` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Lottery Lottery (r:1 w:0)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: Lottery CallIndices (r:1 w:0)
-	/// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Participants (r:1 w:1)
-	/// Proof: Lottery Participants (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:0)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:0 w:1)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:0)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::CallIndices` (r:1 w:0)
+	/// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Participants` (r:1 w:1)
+	/// Proof: `Lottery::Participants` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:0)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:0 w:1)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	fn buy_ticket() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `452`
-		//  Estimated: `3593`
-		// Minimum execution time: 60_298_000 picoseconds.
-		Weight::from_parts(62_058_000, 3593)
-			.saturating_add(T::DbWeight::get().reads(6_u64))
+		//  Measured:  `492`
+		//  Estimated: `3997`
+		// Minimum execution time: 57_891_000 picoseconds.
+		Weight::from_parts(59_508_000, 3997)
+			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Lottery CallIndices (r:0 w:1)
-	/// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen)
+	/// Storage: `Lottery::CallIndices` (r:0 w:1)
+	/// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn set_calls(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_291_000 picoseconds.
-		Weight::from_parts(8_178_186, 0)
-			// Standard Error: 3_048
-			.saturating_add(Weight::from_parts(330_871, 0).saturating_mul(n.into()))
+		// Minimum execution time: 5_026_000 picoseconds.
+		Weight::from_parts(5_854_666, 0)
+			// Standard Error: 3_233
+			.saturating_add(Weight::from_parts(334_818, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:1)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:1)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn start_lottery() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161`
+		//  Measured:  `194`
 		//  Estimated: `3593`
-		// Minimum execution time: 36_741_000 picoseconds.
-		Weight::from_parts(38_288_000, 3593)
+		// Minimum execution time: 26_216_000 picoseconds.
+		Weight::from_parts(27_216_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
 	fn stop_repeat() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `219`
+		//  Measured:  `252`
 		//  Estimated: `1514`
-		// Minimum execution time: 7_270_000 picoseconds.
-		Weight::from_parts(7_578_000, 1514)
+		// Minimum execution time: 6_208_000 picoseconds.
+		Weight::from_parts(6_427_000, 1514)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0)
-	/// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen)
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:1 w:0)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
+	/// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0)
+	/// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:1 w:0)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	fn on_initialize_end() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `558`
+		//  Measured:  `591`
 		//  Estimated: `6196`
-		// Minimum execution time: 76_611_000 picoseconds.
-		Weight::from_parts(78_107_000, 6196)
+		// Minimum execution time: 58_660_000 picoseconds.
+		Weight::from_parts(59_358_000, 6196)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0)
-	/// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen)
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:1 w:0)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:1)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0)
+	/// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:1 w:0)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:1)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn on_initialize_repeat() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `558`
+		//  Measured:  `591`
 		//  Estimated: `6196`
-		// Minimum execution time: 78_731_000 picoseconds.
-		Weight::from_parts(80_248_000, 6196)
+		// Minimum execution time: 59_376_000 picoseconds.
+		Weight::from_parts(60_598_000, 6196)
 			.saturating_add(T::DbWeight::get().reads(7_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Lottery Lottery (r:1 w:0)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: Lottery CallIndices (r:1 w:0)
-	/// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Participants (r:1 w:1)
-	/// Proof: Lottery Participants (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:0)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:0 w:1)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:0)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::CallIndices` (r:1 w:0)
+	/// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Participants` (r:1 w:1)
+	/// Proof: `Lottery::Participants` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:0)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:0 w:1)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	fn buy_ticket() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `452`
-		//  Estimated: `3593`
-		// Minimum execution time: 60_298_000 picoseconds.
-		Weight::from_parts(62_058_000, 3593)
-			.saturating_add(RocksDbWeight::get().reads(6_u64))
+		//  Measured:  `492`
+		//  Estimated: `3997`
+		// Minimum execution time: 57_891_000 picoseconds.
+		Weight::from_parts(59_508_000, 3997)
+			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Lottery CallIndices (r:0 w:1)
-	/// Proof: Lottery CallIndices (max_values: Some(1), max_size: Some(21), added: 516, mode: MaxEncodedLen)
+	/// Storage: `Lottery::CallIndices` (r:0 w:1)
+	/// Proof: `Lottery::CallIndices` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn set_calls(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_291_000 picoseconds.
-		Weight::from_parts(8_178_186, 0)
-			// Standard Error: 3_048
-			.saturating_add(Weight::from_parts(330_871, 0).saturating_mul(n.into()))
+		// Minimum execution time: 5_026_000 picoseconds.
+		Weight::from_parts(5_854_666, 0)
+			// Standard Error: 3_233
+			.saturating_add(Weight::from_parts(334_818, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:1)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:1)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn start_lottery() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161`
+		//  Measured:  `194`
 		//  Estimated: `3593`
-		// Minimum execution time: 36_741_000 picoseconds.
-		Weight::from_parts(38_288_000, 3593)
+		// Minimum execution time: 26_216_000 picoseconds.
+		Weight::from_parts(27_216_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
 	fn stop_repeat() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `219`
+		//  Measured:  `252`
 		//  Estimated: `1514`
-		// Minimum execution time: 7_270_000 picoseconds.
-		Weight::from_parts(7_578_000, 1514)
+		// Minimum execution time: 6_208_000 picoseconds.
+		Weight::from_parts(6_427_000, 1514)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0)
-	/// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen)
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:1 w:0)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
+	/// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0)
+	/// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:1 w:0)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	fn on_initialize_end() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `558`
+		//  Measured:  `591`
 		//  Estimated: `6196`
-		// Minimum execution time: 76_611_000 picoseconds.
-		Weight::from_parts(78_107_000, 6196)
+		// Minimum execution time: 58_660_000 picoseconds.
+		Weight::from_parts(59_358_000, 6196)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: RandomnessCollectiveFlip RandomMaterial (r:1 w:0)
-	/// Proof: RandomnessCollectiveFlip RandomMaterial (max_values: Some(1), max_size: Some(2594), added: 3089, mode: MaxEncodedLen)
-	/// Storage: Lottery Lottery (r:1 w:1)
-	/// Proof: Lottery Lottery (max_values: Some(1), max_size: Some(29), added: 524, mode: MaxEncodedLen)
-	/// Storage: System Account (r:2 w:2)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Lottery TicketsCount (r:1 w:1)
-	/// Proof: Lottery TicketsCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Lottery Tickets (r:1 w:0)
-	/// Proof: Lottery Tickets (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
-	/// Storage: Lottery LotteryIndex (r:1 w:1)
-	/// Proof: Lottery LotteryIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `RandomnessCollectiveFlip::RandomMaterial` (r:1 w:0)
+	/// Proof: `RandomnessCollectiveFlip::RandomMaterial` (`max_values`: Some(1), `max_size`: Some(2594), added: 3089, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Lottery` (r:1 w:1)
+	/// Proof: `Lottery::Lottery` (`max_values`: Some(1), `max_size`: Some(29), added: 524, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::TicketsCount` (r:1 w:1)
+	/// Proof: `Lottery::TicketsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::Tickets` (r:1 w:0)
+	/// Proof: `Lottery::Tickets` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	/// Storage: `Lottery::LotteryIndex` (r:1 w:1)
+	/// Proof: `Lottery::LotteryIndex` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn on_initialize_repeat() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `558`
+		//  Measured:  `591`
 		//  Estimated: `6196`
-		// Minimum execution time: 78_731_000 picoseconds.
-		Weight::from_parts(80_248_000, 6196)
+		// Minimum execution time: 59_376_000 picoseconds.
+		Weight::from_parts(60_598_000, 6196)
 			.saturating_add(RocksDbWeight::get().reads(7_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
diff --git a/substrate/frame/membership/src/weights.rs b/substrate/frame/membership/src/weights.rs
index 2d18848b89a..f21867d6870 100644
--- a/substrate/frame/membership/src/weights.rs
+++ b/substrate/frame/membership/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_membership
+//! Autogenerated weights for `pallet_membership`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/membership/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/membership/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_membership.
+/// Weight functions needed for `pallet_membership`.
 pub trait WeightInfo {
 	fn add_member(m: u32, ) -> Weight;
 	fn remove_member(m: u32, ) -> Weight;
@@ -61,299 +60,299 @@ pub trait WeightInfo {
 	fn clear_prime() -> Weight;
 }
 
-/// Weights for pallet_membership using the Substrate node and recommended hardware.
+/// Weights for `pallet_membership` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 99]`.
 	fn add_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `208 + m * (64 ±0)`
+		//  Measured:  `207 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 17_040_000 picoseconds.
-		Weight::from_parts(18_344_571, 4687)
-			// Standard Error: 847
-			.saturating_add(Weight::from_parts(50_842, 0).saturating_mul(m.into()))
+		// Minimum execution time: 12_126_000 picoseconds.
+		Weight::from_parts(13_085_583, 4687)
+			// Standard Error: 659
+			.saturating_add(Weight::from_parts(36_103, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	fn remove_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_088_000 picoseconds.
-		Weight::from_parts(21_271_384, 4687)
-			// Standard Error: 786
-			.saturating_add(Weight::from_parts(44_806, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_571_000 picoseconds.
+		Weight::from_parts(15_532_232, 4687)
+			// Standard Error: 531
+			.saturating_add(Weight::from_parts(35_757, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	fn swap_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_308_000 picoseconds.
-		Weight::from_parts(21_469_843, 4687)
-			// Standard Error: 782
-			.saturating_add(Weight::from_parts(56_893, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_833_000 picoseconds.
+		Weight::from_parts(15_657_084, 4687)
+			// Standard Error: 650
+			.saturating_add(Weight::from_parts(44_467, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn reset_members(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 19_464_000 picoseconds.
-		Weight::from_parts(21_223_702, 4687)
-			// Standard Error: 1_068
-			.saturating_add(Weight::from_parts(165_438, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_629_000 picoseconds.
+		Weight::from_parts(15_578_203, 4687)
+			// Standard Error: 910
+			.saturating_add(Weight::from_parts(145_101, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn change_key(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_965_000 picoseconds.
-		Weight::from_parts(22_551_007, 4687)
-			// Standard Error: 860
-			.saturating_add(Weight::from_parts(52_397, 0).saturating_mul(m.into()))
+		// Minimum execution time: 15_218_000 picoseconds.
+		Weight::from_parts(16_388_690, 4687)
+			// Standard Error: 626
+			.saturating_add(Weight::from_parts(46_204, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:0)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalMembership Prime (r:0 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalMembership::Prime` (r:0 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn set_prime(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `32 + m * (32 ±0)`
+		//  Measured:  `31 + m * (32 ±0)`
 		//  Estimated: `4687 + m * (32 ±0)`
-		// Minimum execution time: 7_481_000 picoseconds.
-		Weight::from_parts(7_959_053, 4687)
-			// Standard Error: 364
-			.saturating_add(Weight::from_parts(18_653, 0).saturating_mul(m.into()))
+		// Minimum execution time: 5_954_000 picoseconds.
+		Weight::from_parts(6_544_638, 4687)
+			// Standard Error: 346
+			.saturating_add(Weight::from_parts(17_638, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Prime (r:0 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Prime` (r:0 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn clear_prime() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_373_000 picoseconds.
-		Weight::from_parts(3_750_452, 0)
+		// Minimum execution time: 2_569_000 picoseconds.
+		Weight::from_parts(2_776_000, 0)
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 99]`.
 	fn add_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `208 + m * (64 ±0)`
+		//  Measured:  `207 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 17_040_000 picoseconds.
-		Weight::from_parts(18_344_571, 4687)
-			// Standard Error: 847
-			.saturating_add(Weight::from_parts(50_842, 0).saturating_mul(m.into()))
+		// Minimum execution time: 12_126_000 picoseconds.
+		Weight::from_parts(13_085_583, 4687)
+			// Standard Error: 659
+			.saturating_add(Weight::from_parts(36_103, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	fn remove_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_088_000 picoseconds.
-		Weight::from_parts(21_271_384, 4687)
-			// Standard Error: 786
-			.saturating_add(Weight::from_parts(44_806, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_571_000 picoseconds.
+		Weight::from_parts(15_532_232, 4687)
+			// Standard Error: 531
+			.saturating_add(Weight::from_parts(35_757, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[2, 100]`.
 	fn swap_member(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_308_000 picoseconds.
-		Weight::from_parts(21_469_843, 4687)
-			// Standard Error: 782
-			.saturating_add(Weight::from_parts(56_893, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_833_000 picoseconds.
+		Weight::from_parts(15_657_084, 4687)
+			// Standard Error: 650
+			.saturating_add(Weight::from_parts(44_467, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:0)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn reset_members(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 19_464_000 picoseconds.
-		Weight::from_parts(21_223_702, 4687)
-			// Standard Error: 1_068
-			.saturating_add(Weight::from_parts(165_438, 0).saturating_mul(m.into()))
+		// Minimum execution time: 14_629_000 picoseconds.
+		Weight::from_parts(15_578_203, 4687)
+			// Standard Error: 910
+			.saturating_add(Weight::from_parts(145_101, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:1)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Proposals (r:1 w:0)
-	/// Proof Skipped: TechnicalCommittee Proposals (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalMembership Prime (r:1 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Members (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Proposals` (r:1 w:0)
+	/// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalMembership::Prime` (r:1 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Members` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn change_key(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312 + m * (64 ±0)`
+		//  Measured:  `311 + m * (64 ±0)`
 		//  Estimated: `4687 + m * (64 ±0)`
-		// Minimum execution time: 20_965_000 picoseconds.
-		Weight::from_parts(22_551_007, 4687)
-			// Standard Error: 860
-			.saturating_add(Weight::from_parts(52_397, 0).saturating_mul(m.into()))
+		// Minimum execution time: 15_218_000 picoseconds.
+		Weight::from_parts(16_388_690, 4687)
+			// Standard Error: 626
+			.saturating_add(Weight::from_parts(46_204, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Members (r:1 w:0)
-	/// Proof: TechnicalMembership Members (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen)
-	/// Storage: TechnicalMembership Prime (r:0 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Members` (r:1 w:0)
+	/// Proof: `TechnicalMembership::Members` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalMembership::Prime` (r:0 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// The range of component `m` is `[1, 100]`.
 	fn set_prime(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `32 + m * (32 ±0)`
+		//  Measured:  `31 + m * (32 ±0)`
 		//  Estimated: `4687 + m * (32 ±0)`
-		// Minimum execution time: 7_481_000 picoseconds.
-		Weight::from_parts(7_959_053, 4687)
-			// Standard Error: 364
-			.saturating_add(Weight::from_parts(18_653, 0).saturating_mul(m.into()))
+		// Minimum execution time: 5_954_000 picoseconds.
+		Weight::from_parts(6_544_638, 4687)
+			// Standard Error: 346
+			.saturating_add(Weight::from_parts(17_638, 0).saturating_mul(m.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
-	/// Storage: TechnicalMembership Prime (r:0 w:1)
-	/// Proof: TechnicalMembership Prime (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TechnicalCommittee Prime (r:0 w:1)
-	/// Proof Skipped: TechnicalCommittee Prime (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: `TechnicalMembership::Prime` (r:0 w:1)
+	/// Proof: `TechnicalMembership::Prime` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TechnicalCommittee::Prime` (r:0 w:1)
+	/// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn clear_prime() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_373_000 picoseconds.
-		Weight::from_parts(3_750_452, 0)
+		// Minimum execution time: 2_569_000 picoseconds.
+		Weight::from_parts(2_776_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 }
diff --git a/substrate/frame/message-queue/src/weights.rs b/substrate/frame/message-queue/src/weights.rs
index e86f23e274f..001e2834e1c 100644
--- a/substrate/frame/message-queue/src/weights.rs
+++ b/substrate/frame/message-queue/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_message_queue
+//! Autogenerated weights for `pallet_message_queue`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/message-queue/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/message-queue/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_message_queue.
+/// Weight functions needed for `pallet_message_queue`.
 pub trait WeightInfo {
 	fn ready_ring_knit() -> Weight;
 	fn ready_ring_unknit() -> Weight;
@@ -64,246 +63,256 @@ pub trait WeightInfo {
 	fn execute_overweight_page_updated() -> Weight;
 }
 
-/// Weights for pallet_message_queue using the Substrate node and recommended hardware.
+/// Weights for `pallet_message_queue` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: MessageQueue ServiceHead (r:1 w:0)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:0)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn ready_ring_knit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `267`
+		//  Measured:  `301`
 		//  Estimated: `6038`
-		// Minimum execution time: 12_025_000 picoseconds.
-		Weight::from_parts(12_597_000, 6038)
+		// Minimum execution time: 11_563_000 picoseconds.
+		Weight::from_parts(11_956_000, 6038)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn ready_ring_unknit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `267`
+		//  Measured:  `301`
 		//  Estimated: `6038`
-		// Minimum execution time: 11_563_000 picoseconds.
-		Weight::from_parts(11_785_000, 6038)
+		// Minimum execution time: 10_263_000 picoseconds.
+		Weight::from_parts(10_638_000, 6038)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn service_queue_base() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3514`
-		// Minimum execution time: 4_467_000 picoseconds.
-		Weight::from_parts(4_655_000, 3514)
+		// Minimum execution time: 4_335_000 picoseconds.
+		Weight::from_parts(4_552_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_base_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `147`
 		//  Estimated: `69049`
-		// Minimum execution time: 6_103_000 picoseconds.
-		Weight::from_parts(6_254_000, 69049)
+		// Minimum execution time: 6_016_000 picoseconds.
+		Weight::from_parts(6_224_000, 69049)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_base_no_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `147`
 		//  Estimated: `69049`
-		// Minimum execution time: 6_320_000 picoseconds.
-		Weight::from_parts(6_565_000, 69049)
+		// Minimum execution time: 6_183_000 picoseconds.
+		Weight::from_parts(6_348_000, 69049)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
+	/// Storage: `MessageQueue::BookStateFor` (r:0 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:0 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_item() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 66_062_000 picoseconds.
-		Weight::from_parts(66_371_000, 0)
+		// Minimum execution time: 112_864_000 picoseconds.
+		Weight::from_parts(114_269_000, 0)
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:1 w:0)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn bump_service_head() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174`
+		//  Measured:  `246`
 		//  Estimated: `3514`
-		// Minimum execution time: 6_788_000 picoseconds.
-		Weight::from_parts(7_176_000, 3514)
+		// Minimum execution time: 6_665_000 picoseconds.
+		Weight::from_parts(7_108_000, 3514)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn reap_page() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 52_865_000 picoseconds.
-		Weight::from_parts(54_398_000, 69049)
+		// Minimum execution time: 51_420_000 picoseconds.
+		Weight::from_parts(52_252_000, 69049)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn execute_overweight_page_removed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 69_168_000 picoseconds.
-		Weight::from_parts(70_560_000, 69049)
+		// Minimum execution time: 71_195_000 picoseconds.
+		Weight::from_parts(72_981_000, 69049)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn execute_overweight_page_updated() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 80_947_000 picoseconds.
-		Weight::from_parts(82_715_000, 69049)
+		// Minimum execution time: 83_238_000 picoseconds.
+		Weight::from_parts(84_422_000, 69049)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: MessageQueue ServiceHead (r:1 w:0)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:0)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn ready_ring_knit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `267`
+		//  Measured:  `301`
 		//  Estimated: `6038`
-		// Minimum execution time: 12_025_000 picoseconds.
-		Weight::from_parts(12_597_000, 6038)
+		// Minimum execution time: 11_563_000 picoseconds.
+		Weight::from_parts(11_956_000, 6038)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:2 w:2)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:2 w:2)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	fn ready_ring_unknit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `267`
+		//  Measured:  `301`
 		//  Estimated: `6038`
-		// Minimum execution time: 11_563_000 picoseconds.
-		Weight::from_parts(11_785_000, 6038)
+		// Minimum execution time: 10_263_000 picoseconds.
+		Weight::from_parts(10_638_000, 6038)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn service_queue_base() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3514`
-		// Minimum execution time: 4_467_000 picoseconds.
-		Weight::from_parts(4_655_000, 3514)
+		// Minimum execution time: 4_335_000 picoseconds.
+		Weight::from_parts(4_552_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_base_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `147`
 		//  Estimated: `69049`
-		// Minimum execution time: 6_103_000 picoseconds.
-		Weight::from_parts(6_254_000, 69049)
+		// Minimum execution time: 6_016_000 picoseconds.
+		Weight::from_parts(6_224_000, 69049)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_base_no_completion() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `147`
 		//  Estimated: `69049`
-		// Minimum execution time: 6_320_000 picoseconds.
-		Weight::from_parts(6_565_000, 69049)
+		// Minimum execution time: 6_183_000 picoseconds.
+		Weight::from_parts(6_348_000, 69049)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
+	/// Storage: `MessageQueue::BookStateFor` (r:0 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:0 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn service_page_item() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 66_062_000 picoseconds.
-		Weight::from_parts(66_371_000, 0)
+		// Minimum execution time: 112_864_000 picoseconds.
+		Weight::from_parts(114_269_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue ServiceHead (r:1 w:1)
-	/// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: MessageQueue BookStateFor (r:1 w:0)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::ServiceHead` (r:1 w:1)
+	/// Proof: `MessageQueue::ServiceHead` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:0)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
 	fn bump_service_head() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174`
+		//  Measured:  `246`
 		//  Estimated: `3514`
-		// Minimum execution time: 6_788_000 picoseconds.
-		Weight::from_parts(7_176_000, 3514)
+		// Minimum execution time: 6_665_000 picoseconds.
+		Weight::from_parts(7_108_000, 3514)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn reap_page() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 52_865_000 picoseconds.
-		Weight::from_parts(54_398_000, 69049)
+		// Minimum execution time: 51_420_000 picoseconds.
+		Weight::from_parts(52_252_000, 69049)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn execute_overweight_page_removed() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 69_168_000 picoseconds.
-		Weight::from_parts(70_560_000, 69049)
+		// Minimum execution time: 71_195_000 picoseconds.
+		Weight::from_parts(72_981_000, 69049)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: MessageQueue BookStateFor (r:1 w:1)
-	/// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(49), added: 2524, mode: MaxEncodedLen)
-	/// Storage: MessageQueue Pages (r:1 w:1)
-	/// Proof: MessageQueue Pages (max_values: None, max_size: Some(65584), added: 68059, mode: MaxEncodedLen)
+	/// Storage: `MessageQueue::BookStateFor` (r:1 w:1)
+	/// Proof: `MessageQueue::BookStateFor` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `MessageQueue::Pages` (r:1 w:1)
+	/// Proof: `MessageQueue::Pages` (`max_values`: None, `max_size`: Some(65584), added: 68059, mode: `MaxEncodedLen`)
 	fn execute_overweight_page_updated() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `65744`
 		//  Estimated: `69049`
-		// Minimum execution time: 80_947_000 picoseconds.
-		Weight::from_parts(82_715_000, 69049)
+		// Minimum execution time: 83_238_000 picoseconds.
+		Weight::from_parts(84_422_000, 69049)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
diff --git a/substrate/frame/migrations/src/weights.rs b/substrate/frame/migrations/src/weights.rs
index c9b63258c44..9eca48ac3fd 100644
--- a/substrate/frame/migrations/src/weights.rs
+++ b/substrate/frame/migrations/src/weights.rs
@@ -17,26 +17,29 @@
 
 //! Autogenerated weights for `pallet_migrations`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `loud1`, CPU: `AMD EPYC 7282 16-Core Processor`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/release/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
-// --chain
-// dev
-// --pallet
-// pallet-migrations
-// --extrinsic
-// 
-// --output
-// weight.rs
-// --template
-// ../../polkadot-sdk/substrate/.maintain/frame-weight-template.hbs
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=pallet_migrations
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/migrations/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -71,10 +74,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
 	fn onboard_new_mbms() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
+		//  Measured:  `276`
 		//  Estimated: `67035`
-		// Minimum execution time: 13_980_000 picoseconds.
-		Weight::from_parts(14_290_000, 67035)
+		// Minimum execution time: 7_932_000 picoseconds.
+		Weight::from_parts(8_428_000, 67035)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -82,10 +85,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	fn progress_mbms_none() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `109`
+		//  Measured:  `142`
 		//  Estimated: `67035`
-		// Minimum execution time: 3_770_000 picoseconds.
-		Weight::from_parts(4_001_000, 67035)
+		// Minimum execution time: 2_229_000 picoseconds.
+		Weight::from_parts(2_329_000, 67035)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -96,8 +99,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3599`
-		// Minimum execution time: 10_900_000 picoseconds.
-		Weight::from_parts(11_251_000, 3599)
+		// Minimum execution time: 6_051_000 picoseconds.
+		Weight::from_parts(6_483_000, 3599)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -107,10 +110,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_skipped_historic() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `297`
-		//  Estimated: `3762`
-		// Minimum execution time: 17_891_000 picoseconds.
-		Weight::from_parts(18_501_000, 3762)
+		//  Measured:  `330`
+		//  Estimated: `3795`
+		// Minimum execution time: 10_066_000 picoseconds.
+		Weight::from_parts(10_713_000, 3795)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -119,10 +122,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_advance() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 18_271_000 picoseconds.
-		Weight::from_parts(18_740_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 10_026_000 picoseconds.
+		Weight::from_parts(10_379_000, 3741)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -131,10 +134,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_complete() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 21_241_000 picoseconds.
-		Weight::from_parts(21_911_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 11_680_000 picoseconds.
+		Weight::from_parts(12_184_000, 3741)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -146,10 +149,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	fn exec_migration_fail() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 22_740_000 picoseconds.
-		Weight::from_parts(23_231_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 12_334_000 picoseconds.
+		Weight::from_parts(12_899_000, 3741)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -157,8 +160,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 440_000 picoseconds.
-		Weight::from_parts(500_000, 0)
+		// Minimum execution time: 187_000 picoseconds.
+		Weight::from_parts(209_000, 0)
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
@@ -166,8 +169,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_751_000 picoseconds.
-		Weight::from_parts(5_950_000, 0)
+		// Minimum execution time: 2_688_000 picoseconds.
+		Weight::from_parts(2_874_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
@@ -176,8 +179,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_350_000 picoseconds.
-		Weight::from_parts(6_560_000, 0)
+		// Minimum execution time: 3_108_000 picoseconds.
+		Weight::from_parts(3_263_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
@@ -186,10 +189,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
 	fn force_onboard_mbms() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `218`
+		//  Measured:  `251`
 		//  Estimated: `67035`
-		// Minimum execution time: 11_121_000 picoseconds.
-		Weight::from_parts(11_530_000, 67035)
+		// Minimum execution time: 5_993_000 picoseconds.
+		Weight::from_parts(6_359_000, 67035)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Historic` (r:256 w:256)
@@ -197,12 +200,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `n` is `[0, 256]`.
 	fn clear_historic(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1089 + n * (271 ±0)`
+		//  Measured:  `1122 + n * (271 ±0)`
 		//  Estimated: `3834 + n * (2740 ±0)`
-		// Minimum execution time: 21_891_000 picoseconds.
-		Weight::from_parts(18_572_306, 3834)
-			// Standard Error: 3_236
-			.saturating_add(Weight::from_parts(1_648_429, 0).saturating_mul(n.into()))
+		// Minimum execution time: 16_003_000 picoseconds.
+		Weight::from_parts(14_453_014, 3834)
+			// Standard Error: 3_305
+			.saturating_add(Weight::from_parts(1_325_026, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
@@ -218,10 +221,10 @@ impl WeightInfo for () {
 	/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
 	fn onboard_new_mbms() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
+		//  Measured:  `276`
 		//  Estimated: `67035`
-		// Minimum execution time: 13_980_000 picoseconds.
-		Weight::from_parts(14_290_000, 67035)
+		// Minimum execution time: 7_932_000 picoseconds.
+		Weight::from_parts(8_428_000, 67035)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -229,10 +232,10 @@ impl WeightInfo for () {
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	fn progress_mbms_none() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `109`
+		//  Measured:  `142`
 		//  Estimated: `67035`
-		// Minimum execution time: 3_770_000 picoseconds.
-		Weight::from_parts(4_001_000, 67035)
+		// Minimum execution time: 2_229_000 picoseconds.
+		Weight::from_parts(2_329_000, 67035)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -243,8 +246,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `134`
 		//  Estimated: `3599`
-		// Minimum execution time: 10_900_000 picoseconds.
-		Weight::from_parts(11_251_000, 3599)
+		// Minimum execution time: 6_051_000 picoseconds.
+		Weight::from_parts(6_483_000, 3599)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -254,10 +257,10 @@ impl WeightInfo for () {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_skipped_historic() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `297`
-		//  Estimated: `3762`
-		// Minimum execution time: 17_891_000 picoseconds.
-		Weight::from_parts(18_501_000, 3762)
+		//  Measured:  `330`
+		//  Estimated: `3795`
+		// Minimum execution time: 10_066_000 picoseconds.
+		Weight::from_parts(10_713_000, 3795)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -266,10 +269,10 @@ impl WeightInfo for () {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_advance() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 18_271_000 picoseconds.
-		Weight::from_parts(18_740_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 10_026_000 picoseconds.
+		Weight::from_parts(10_379_000, 3741)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
@@ -278,10 +281,10 @@ impl WeightInfo for () {
 	/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
 	fn exec_migration_complete() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 21_241_000 picoseconds.
-		Weight::from_parts(21_911_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 11_680_000 picoseconds.
+		Weight::from_parts(12_184_000, 3741)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -293,10 +296,10 @@ impl WeightInfo for () {
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	fn exec_migration_fail() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `243`
-		//  Estimated: `3731`
-		// Minimum execution time: 22_740_000 picoseconds.
-		Weight::from_parts(23_231_000, 3731)
+		//  Measured:  `276`
+		//  Estimated: `3741`
+		// Minimum execution time: 12_334_000 picoseconds.
+		Weight::from_parts(12_899_000, 3741)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -304,8 +307,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 440_000 picoseconds.
-		Weight::from_parts(500_000, 0)
+		// Minimum execution time: 187_000 picoseconds.
+		Weight::from_parts(209_000, 0)
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
 	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
@@ -313,8 +316,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_751_000 picoseconds.
-		Weight::from_parts(5_950_000, 0)
+		// Minimum execution time: 2_688_000 picoseconds.
+		Weight::from_parts(2_874_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
@@ -323,8 +326,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_350_000 picoseconds.
-		Weight::from_parts(6_560_000, 0)
+		// Minimum execution time: 3_108_000 picoseconds.
+		Weight::from_parts(3_263_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
@@ -333,10 +336,10 @@ impl WeightInfo for () {
 	/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
 	fn force_onboard_mbms() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `218`
+		//  Measured:  `251`
 		//  Estimated: `67035`
-		// Minimum execution time: 11_121_000 picoseconds.
-		Weight::from_parts(11_530_000, 67035)
+		// Minimum execution time: 5_993_000 picoseconds.
+		Weight::from_parts(6_359_000, 67035)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	/// Storage: `MultiBlockMigrations::Historic` (r:256 w:256)
@@ -344,12 +347,12 @@ impl WeightInfo for () {
 	/// The range of component `n` is `[0, 256]`.
 	fn clear_historic(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1089 + n * (271 ±0)`
+		//  Measured:  `1122 + n * (271 ±0)`
 		//  Estimated: `3834 + n * (2740 ±0)`
-		// Minimum execution time: 21_891_000 picoseconds.
-		Weight::from_parts(18_572_306, 3834)
-			// Standard Error: 3_236
-			.saturating_add(Weight::from_parts(1_648_429, 0).saturating_mul(n.into()))
+		// Minimum execution time: 16_003_000 picoseconds.
+		Weight::from_parts(14_453_014, 3834)
+			// Standard Error: 3_305
+			.saturating_add(Weight::from_parts(1_325_026, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
diff --git a/substrate/frame/multisig/src/weights.rs b/substrate/frame/multisig/src/weights.rs
index 7b87d258d38..4cbe7bb03b7 100644
--- a/substrate/frame/multisig/src/weights.rs
+++ b/substrate/frame/multisig/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_multisig
+//! Autogenerated weights for `pallet_multisig`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/multisig/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/multisig/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_multisig.
+/// Weight functions needed for `pallet_multisig`.
 pub trait WeightInfo {
 	fn as_multi_threshold_1(z: u32, ) -> Weight;
 	fn as_multi_create(s: u32, z: u32, ) -> Weight;
@@ -61,220 +60,238 @@ pub trait WeightInfo {
 	fn cancel_as_multi(s: u32, ) -> Weight;
 }
 
-/// Weights for pallet_multisig using the Substrate node and recommended hardware.
+/// Weights for `pallet_multisig` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_threshold_1(z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 13_452_000 picoseconds.
-		Weight::from_parts(14_425_869, 0)
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 18_893_000 picoseconds.
+		Weight::from_parts(20_278_307, 3997)
 			// Standard Error: 4
-			.saturating_add(Weight::from_parts(493, 0).saturating_mul(z.into()))
+			.saturating_add(Weight::from_parts(488, 0).saturating_mul(z.into()))
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_create(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `301 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 46_012_000 picoseconds.
-		Weight::from_parts(34_797_344, 6811)
-			// Standard Error: 833
-			.saturating_add(Weight::from_parts(127_671, 0).saturating_mul(s.into()))
-			// Standard Error: 8
-			.saturating_add(Weight::from_parts(1_498, 0).saturating_mul(z.into()))
+		// Minimum execution time: 39_478_000 picoseconds.
+		Weight::from_parts(29_195_487, 6811)
+			// Standard Error: 739
+			.saturating_add(Weight::from_parts(118_766, 0).saturating_mul(s.into()))
+			// Standard Error: 7
+			.saturating_add(Weight::from_parts(1_511, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[3, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_approve(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `320`
 		//  Estimated: `6811`
-		// Minimum execution time: 29_834_000 picoseconds.
-		Weight::from_parts(20_189_154, 6811)
-			// Standard Error: 637
-			.saturating_add(Weight::from_parts(110_080, 0).saturating_mul(s.into()))
-			// Standard Error: 6
-			.saturating_add(Weight::from_parts(1_483, 0).saturating_mul(z.into()))
+		// Minimum execution time: 26_401_000 picoseconds.
+		Weight::from_parts(17_277_296, 6811)
+			// Standard Error: 492
+			.saturating_add(Weight::from_parts(101_763, 0).saturating_mul(s.into()))
+			// Standard Error: 4
+			.saturating_add(Weight::from_parts(1_486, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_complete(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `426 + s * (33 ±0)`
+		//  Measured:  `571 + s * (33 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 51_464_000 picoseconds.
-		Weight::from_parts(39_246_644, 6811)
-			// Standard Error: 1_251
-			.saturating_add(Weight::from_parts(143_313, 0).saturating_mul(s.into()))
+		// Minimum execution time: 52_430_000 picoseconds.
+		Weight::from_parts(40_585_478, 6811)
+			// Standard Error: 1_240
+			.saturating_add(Weight::from_parts(161_405, 0).saturating_mul(s.into()))
 			// Standard Error: 12
-			.saturating_add(Weight::from_parts(1_523, 0).saturating_mul(z.into()))
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(Weight::from_parts(1_547, 0).saturating_mul(z.into()))
+			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_create(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `301 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 33_275_000 picoseconds.
-		Weight::from_parts(34_073_221, 6811)
-			// Standard Error: 1_163
-			.saturating_add(Weight::from_parts(124_815, 0).saturating_mul(s.into()))
+		// Minimum execution time: 27_797_000 picoseconds.
+		Weight::from_parts(29_064_584, 6811)
+			// Standard Error: 817
+			.saturating_add(Weight::from_parts(108_179, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_approve(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `320`
 		//  Estimated: `6811`
-		// Minimum execution time: 18_411_000 picoseconds.
-		Weight::from_parts(19_431_787, 6811)
-			// Standard Error: 694
-			.saturating_add(Weight::from_parts(107_220, 0).saturating_mul(s.into()))
+		// Minimum execution time: 15_236_000 picoseconds.
+		Weight::from_parts(16_360_247, 6811)
+			// Standard Error: 584
+			.saturating_add(Weight::from_parts(94_917, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn cancel_as_multi(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `492 + s * (1 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 33_985_000 picoseconds.
-		Weight::from_parts(35_547_970, 6811)
-			// Standard Error: 1_135
-			.saturating_add(Weight::from_parts(116_537, 0).saturating_mul(s.into()))
+		// Minimum execution time: 28_730_000 picoseconds.
+		Weight::from_parts(30_056_661, 6811)
+			// Standard Error: 792
+			.saturating_add(Weight::from_parts(108_212, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_threshold_1(z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 13_452_000 picoseconds.
-		Weight::from_parts(14_425_869, 0)
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 18_893_000 picoseconds.
+		Weight::from_parts(20_278_307, 3997)
 			// Standard Error: 4
-			.saturating_add(Weight::from_parts(493, 0).saturating_mul(z.into()))
+			.saturating_add(Weight::from_parts(488, 0).saturating_mul(z.into()))
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_create(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `301 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 46_012_000 picoseconds.
-		Weight::from_parts(34_797_344, 6811)
-			// Standard Error: 833
-			.saturating_add(Weight::from_parts(127_671, 0).saturating_mul(s.into()))
-			// Standard Error: 8
-			.saturating_add(Weight::from_parts(1_498, 0).saturating_mul(z.into()))
+		// Minimum execution time: 39_478_000 picoseconds.
+		Weight::from_parts(29_195_487, 6811)
+			// Standard Error: 739
+			.saturating_add(Weight::from_parts(118_766, 0).saturating_mul(s.into()))
+			// Standard Error: 7
+			.saturating_add(Weight::from_parts(1_511, 0).saturating_mul(z.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[3, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_approve(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `320`
 		//  Estimated: `6811`
-		// Minimum execution time: 29_834_000 picoseconds.
-		Weight::from_parts(20_189_154, 6811)
-			// Standard Error: 637
-			.saturating_add(Weight::from_parts(110_080, 0).saturating_mul(s.into()))
-			// Standard Error: 6
-			.saturating_add(Weight::from_parts(1_483, 0).saturating_mul(z.into()))
+		// Minimum execution time: 26_401_000 picoseconds.
+		Weight::from_parts(17_277_296, 6811)
+			// Standard Error: 492
+			.saturating_add(Weight::from_parts(101_763, 0).saturating_mul(s.into()))
+			// Standard Error: 4
+			.saturating_add(Weight::from_parts(1_486, 0).saturating_mul(z.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	/// The range of component `z` is `[0, 10000]`.
 	fn as_multi_complete(s: u32, z: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `426 + s * (33 ±0)`
+		//  Measured:  `571 + s * (33 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 51_464_000 picoseconds.
-		Weight::from_parts(39_246_644, 6811)
-			// Standard Error: 1_251
-			.saturating_add(Weight::from_parts(143_313, 0).saturating_mul(s.into()))
+		// Minimum execution time: 52_430_000 picoseconds.
+		Weight::from_parts(40_585_478, 6811)
+			// Standard Error: 1_240
+			.saturating_add(Weight::from_parts(161_405, 0).saturating_mul(s.into()))
 			// Standard Error: 12
-			.saturating_add(Weight::from_parts(1_523, 0).saturating_mul(z.into()))
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(Weight::from_parts(1_547, 0).saturating_mul(z.into()))
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_create(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `301 + s * (2 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 33_275_000 picoseconds.
-		Weight::from_parts(34_073_221, 6811)
-			// Standard Error: 1_163
-			.saturating_add(Weight::from_parts(124_815, 0).saturating_mul(s.into()))
+		// Minimum execution time: 27_797_000 picoseconds.
+		Weight::from_parts(29_064_584, 6811)
+			// Standard Error: 817
+			.saturating_add(Weight::from_parts(108_179, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn approve_as_multi_approve(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `320`
 		//  Estimated: `6811`
-		// Minimum execution time: 18_411_000 picoseconds.
-		Weight::from_parts(19_431_787, 6811)
-			// Standard Error: 694
-			.saturating_add(Weight::from_parts(107_220, 0).saturating_mul(s.into()))
+		// Minimum execution time: 15_236_000 picoseconds.
+		Weight::from_parts(16_360_247, 6811)
+			// Standard Error: 584
+			.saturating_add(Weight::from_parts(94_917, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Multisig Multisigs (r:1 w:1)
-	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen)
+	/// Storage: `Multisig::Multisigs` (r:1 w:1)
+	/// Proof: `Multisig::Multisigs` (`max_values`: None, `max_size`: Some(3346), added: 5821, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[2, 100]`.
 	fn cancel_as_multi(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `492 + s * (1 ±0)`
 		//  Estimated: `6811`
-		// Minimum execution time: 33_985_000 picoseconds.
-		Weight::from_parts(35_547_970, 6811)
-			// Standard Error: 1_135
-			.saturating_add(Weight::from_parts(116_537, 0).saturating_mul(s.into()))
+		// Minimum execution time: 28_730_000 picoseconds.
+		Weight::from_parts(30_056_661, 6811)
+			// Standard Error: 792
+			.saturating_add(Weight::from_parts(108_212, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/nft-fractionalization/src/weights.rs b/substrate/frame/nft-fractionalization/src/weights.rs
index ebb4aa0fbcf..07872ebaea9 100644
--- a/substrate/frame/nft-fractionalization/src/weights.rs
+++ b/substrate/frame/nft-fractionalization/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_nft_fractionalization
+//! Autogenerated weights for `pallet_nft_fractionalization`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/nft-fractionalization/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/nft-fractionalization/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,136 +49,136 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_nft_fractionalization.
+/// Weight functions needed for `pallet_nft_fractionalization`.
 pub trait WeightInfo {
 	fn fractionalize() -> Weight;
 	fn unify() -> Weight;
 }
 
-/// Weights for pallet_nft_fractionalization using the Substrate node and recommended hardware.
+/// Weights for `pallet_nft_fractionalization` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: NftFractionalization NftToAsset (r:0 w:1)
-	/// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
+	/// Storage: `NftFractionalization::NftToAsset` (r:0 w:1)
+	/// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
 	fn fractionalize() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `609`
 		//  Estimated: `4326`
-		// Minimum execution time: 187_416_000 picoseconds.
-		Weight::from_parts(191_131_000, 4326)
+		// Minimum execution time: 164_764_000 picoseconds.
+		Weight::from_parts(168_243_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(8_u64))
 	}
-	/// Storage: NftFractionalization NftToAsset (r:1 w:1)
-	/// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `NftFractionalization::NftToAsset` (r:1 w:1)
+	/// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn unify() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1422`
 		//  Estimated: `4326`
-		// Minimum execution time: 134_159_000 picoseconds.
-		Weight::from_parts(136_621_000, 4326)
+		// Minimum execution time: 120_036_000 picoseconds.
+		Weight::from_parts(123_550_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(10_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Assets Metadata (r:1 w:1)
-	/// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: NftFractionalization NftToAsset (r:0 w:1)
-	/// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Metadata` (r:1 w:1)
+	/// Proof: `Assets::Metadata` (`max_values`: None, `max_size`: Some(140), added: 2615, mode: `MaxEncodedLen`)
+	/// Storage: `NftFractionalization::NftToAsset` (r:0 w:1)
+	/// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
 	fn fractionalize() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `609`
 		//  Estimated: `4326`
-		// Minimum execution time: 187_416_000 picoseconds.
-		Weight::from_parts(191_131_000, 4326)
+		// Minimum execution time: 164_764_000 picoseconds.
+		Weight::from_parts(168_243_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(8_u64))
 	}
-	/// Storage: NftFractionalization NftToAsset (r:1 w:1)
-	/// Proof: NftFractionalization NftToAsset (max_values: None, max_size: Some(92), added: 2567, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `NftFractionalization::NftToAsset` (r:1 w:1)
+	/// Proof: `NftFractionalization::NftToAsset` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn unify() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `1422`
 		//  Estimated: `4326`
-		// Minimum execution time: 134_159_000 picoseconds.
-		Weight::from_parts(136_621_000, 4326)
+		// Minimum execution time: 120_036_000 picoseconds.
+		Weight::from_parts(123_550_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(10_u64))
 	}
diff --git a/substrate/frame/nfts/src/weights.rs b/substrate/frame/nfts/src/weights.rs
index 6b8c577bb12..4fcc1e601f4 100644
--- a/substrate/frame/nfts/src/weights.rs
+++ b/substrate/frame/nfts/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_nfts
+//! Autogenerated weights for `pallet_nfts`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -37,9 +37,9 @@
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/nfts/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/nfts/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -49,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_nfts.
+/// Weight functions needed for `pallet_nfts`.
 pub trait WeightInfo {
 	fn create() -> Weight;
 	fn force_create() -> Weight;
@@ -92,564 +92,568 @@ pub trait WeightInfo {
 	fn set_attributes_pre_signed(n: u32, ) -> Weight;
 }
 
-/// Weights for pallet_nfts using the Substrate node and recommended hardware.
+/// Weights for `pallet_nfts` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Nfts NextCollectionId (r:1 w:1)
-	/// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:0 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::NextCollectionId` (r:1 w:1)
+	/// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `3549`
-		// Minimum execution time: 40_489_000 picoseconds.
-		Weight::from_parts(41_320_000, 3549)
+		// Minimum execution time: 34_035_000 picoseconds.
+		Weight::from_parts(35_228_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts NextCollectionId (r:1 w:1)
-	/// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:0 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::NextCollectionId` (r:1 w:1)
+	/// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn force_create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3549`
-		// Minimum execution time: 23_257_000 picoseconds.
-		Weight::from_parts(23_770_000, 3549)
+		// Minimum execution time: 19_430_000 picoseconds.
+		Weight::from_parts(20_054_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:0)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1001 w:1000)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1000 w:1000)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:0 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1001 w:1000)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// The range of component `m` is `[0, 1000]`.
 	/// The range of component `c` is `[0, 1000]`.
 	/// The range of component `a` is `[0, 1000]`.
 	fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `32220 + a * (332 ±0)`
-		//  Estimated: `2523990 + a * (2921 ±0)`
-		// Minimum execution time: 1_310_198_000 picoseconds.
-		Weight::from_parts(1_479_261_043, 2523990)
-			// Standard Error: 4_415
-			.saturating_add(Weight::from_parts(6_016_212, 0).saturating_mul(a.into()))
+		//  Measured:  `32204 + a * (366 ±0)`
+		//  Estimated: `2523990 + a * (2954 ±0)`
+		// Minimum execution time: 1_249_733_000 picoseconds.
+		Weight::from_parts(1_293_703_849, 2523990)
+			// Standard Error: 4_764
+			.saturating_add(Weight::from_parts(6_433_523, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(1004_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into())))
 			.saturating_add(T::DbWeight::get().writes(1005_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(a.into()))
-	}
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into()))
+	}
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	fn mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `455`
 		//  Estimated: `4326`
-		// Minimum execution time: 51_910_000 picoseconds.
-		Weight::from_parts(53_441_000, 4326)
+		// Minimum execution time: 48_645_000 picoseconds.
+		Weight::from_parts(50_287_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	fn force_mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `455`
 		//  Estimated: `4326`
-		// Minimum execution time: 50_168_000 picoseconds.
-		Weight::from_parts(51_380_000, 4326)
+		// Minimum execution time: 46_688_000 picoseconds.
+		Weight::from_parts(47_680_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:0)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn burn() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `564`
 		//  Estimated: `4326`
-		// Minimum execution time: 50_738_000 picoseconds.
-		Weight::from_parts(51_850_000, 4326)
-			.saturating_add(T::DbWeight::get().reads(4_u64))
+		// Minimum execution time: 51_771_000 picoseconds.
+		Weight::from_parts(53_492_000, 4326)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:2)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:2)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `593`
 		//  Estimated: `4326`
-		// Minimum execution time: 41_055_000 picoseconds.
-		Weight::from_parts(42_336_000, 4326)
+		// Minimum execution time: 39_166_000 picoseconds.
+		Weight::from_parts(40_128_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:5000 w:5000)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:5000 w:5000)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	/// The range of component `i` is `[0, 5000]`.
 	fn redeposit(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `763 + i * (108 ±0)`
 		//  Estimated: `3549 + i * (3336 ±0)`
-		// Minimum execution time: 15_688_000 picoseconds.
-		Weight::from_parts(15_921_000, 3549)
-			// Standard Error: 14_827
-			.saturating_add(Weight::from_parts(17_105_395, 0).saturating_mul(i.into()))
+		// Minimum execution time: 13_804_000 picoseconds.
+		Weight::from_parts(14_159_000, 3549)
+			// Standard Error: 13_812
+			.saturating_add(Weight::from_parts(14_661_284, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into()))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn lock_item_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_981_000 picoseconds.
-		Weight::from_parts(20_676_000, 3534)
+		// Minimum execution time: 17_485_000 picoseconds.
+		Weight::from_parts(18_412_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn unlock_item_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_911_000 picoseconds.
-		Weight::from_parts(20_612_000, 3534)
+		// Minimum execution time: 17_335_000 picoseconds.
+		Weight::from_parts(18_543_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn lock_collection() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `340`
 		//  Estimated: `3549`
-		// Minimum execution time: 16_441_000 picoseconds.
-		Weight::from_parts(16_890_000, 3549)
+		// Minimum execution time: 14_608_000 picoseconds.
+		Weight::from_parts(15_696_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts OwnershipAcceptance (r:1 w:1)
-	/// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:2)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1)
+	/// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:2)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `388`
-		//  Estimated: `3549`
-		// Minimum execution time: 22_610_000 picoseconds.
-		Weight::from_parts(23_422_000, 3549)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+		//  Measured:  `562`
+		//  Estimated: `3593`
+		// Minimum execution time: 25_686_000 picoseconds.
+		Weight::from_parts(26_433_000, 3593)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:2 w:4)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:2 w:4)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn set_team() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `369`
 		//  Estimated: `6078`
-		// Minimum execution time: 39_739_000 picoseconds.
-		Weight::from_parts(41_306_000, 6078)
+		// Minimum execution time: 37_192_000 picoseconds.
+		Weight::from_parts(38_561_000, 6078)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:2)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:2)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn force_collection_owner() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `311`
 		//  Estimated: `3549`
-		// Minimum execution time: 17_685_000 picoseconds.
-		Weight::from_parts(18_258_000, 3549)
+		// Minimum execution time: 15_401_000 picoseconds.
+		Weight::from_parts(15_826_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn force_collection_config() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `276`
 		//  Estimated: `3549`
-		// Minimum execution time: 13_734_000 picoseconds.
-		Weight::from_parts(14_337_000, 3549)
+		// Minimum execution time: 11_683_000 picoseconds.
+		Weight::from_parts(12_255_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn lock_item_properties() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_269_000 picoseconds.
-		Weight::from_parts(19_859_000, 3534)
+		// Minimum execution time: 16_899_000 picoseconds.
+		Weight::from_parts(17_404_000, 3534)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
 	fn set_attribute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `539`
-		//  Estimated: `3911`
-		// Minimum execution time: 51_540_000 picoseconds.
-		Weight::from_parts(52_663_000, 3911)
+		//  Estimated: `3944`
+		// Minimum execution time: 46_768_000 picoseconds.
+		Weight::from_parts(47_834_000, 3944)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
 	fn force_set_attribute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `344`
-		//  Estimated: `3911`
-		// Minimum execution time: 26_529_000 picoseconds.
-		Weight::from_parts(27_305_000, 3911)
+		//  Estimated: `3944`
+		// Minimum execution time: 23_356_000 picoseconds.
+		Weight::from_parts(24_528_000, 3944)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
 	fn clear_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `950`
-		//  Estimated: `3911`
-		// Minimum execution time: 46_951_000 picoseconds.
-		Weight::from_parts(48_481_000, 3911)
+		//  Measured:  `983`
+		//  Estimated: `3944`
+		// Minimum execution time: 43_061_000 picoseconds.
+		Weight::from_parts(44_024_000, 3944)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
 	fn approve_item_attributes() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `381`
 		//  Estimated: `4326`
-		// Minimum execution time: 17_222_000 picoseconds.
-		Weight::from_parts(17_819_000, 4326)
+		// Minimum execution time: 14_929_000 picoseconds.
+		Weight::from_parts(15_344_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1001 w:1000)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1001 w:1000)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn cancel_item_attributes_approval(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `837 + n * (364 ±0)`
-		//  Estimated: `4326 + n * (2921 ±0)`
-		// Minimum execution time: 26_185_000 picoseconds.
-		Weight::from_parts(27_038_000, 4326)
-			// Standard Error: 2_378
-			.saturating_add(Weight::from_parts(6_067_888, 0).saturating_mul(n.into()))
+		//  Measured:  `831 + n * (398 ±0)`
+		//  Estimated: `4326 + n * (2954 ±0)`
+		// Minimum execution time: 23_707_000 picoseconds.
+		Weight::from_parts(24_688_000, 4326)
+			// Standard Error: 3_813
+			.saturating_add(Weight::from_parts(6_422_256, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
 	fn set_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `539`
-		//  Estimated: `3605`
-		// Minimum execution time: 42_120_000 picoseconds.
-		Weight::from_parts(43_627_000, 3605)
+		//  Estimated: `3812`
+		// Minimum execution time: 37_882_000 picoseconds.
+		Weight::from_parts(39_222_000, 3812)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `642`
-		//  Estimated: `3605`
-		// Minimum execution time: 40_732_000 picoseconds.
-		Weight::from_parts(42_760_000, 3605)
+		//  Measured:  `849`
+		//  Estimated: `3812`
+		// Minimum execution time: 36_629_000 picoseconds.
+		Weight::from_parts(37_351_000, 3812)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:1 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
 	fn set_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `398`
-		//  Estimated: `3552`
-		// Minimum execution time: 39_443_000 picoseconds.
-		Weight::from_parts(40_482_000, 3552)
+		//  Estimated: `3759`
+		// Minimum execution time: 34_853_000 picoseconds.
+		Weight::from_parts(35_914_000, 3759)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:1 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
 	fn clear_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `509`
-		//  Estimated: `3552`
-		// Minimum execution time: 37_676_000 picoseconds.
-		Weight::from_parts(39_527_000, 3552)
+		//  Measured:  `716`
+		//  Estimated: `3759`
+		// Minimum execution time: 33_759_000 picoseconds.
+		Weight::from_parts(34_729_000, 3759)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn approve_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `410`
 		//  Estimated: `4326`
-		// Minimum execution time: 20_787_000 picoseconds.
-		Weight::from_parts(21_315_000, 4326)
+		// Minimum execution time: 17_583_000 picoseconds.
+		Weight::from_parts(18_675_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418`
 		//  Estimated: `4326`
-		// Minimum execution time: 18_200_000 picoseconds.
-		Weight::from_parts(19_064_000, 4326)
+		// Minimum execution time: 15_036_000 picoseconds.
+		Weight::from_parts(15_995_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn clear_all_transfer_approvals() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418`
 		//  Estimated: `4326`
-		// Minimum execution time: 17_128_000 picoseconds.
-		Weight::from_parts(17_952_000, 4326)
+		// Minimum execution time: 14_666_000 picoseconds.
+		Weight::from_parts(15_152_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts OwnershipAcceptance (r:1 w:1)
-	/// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1)
+	/// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_accept_ownership() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3517`
-		// Minimum execution time: 14_667_000 picoseconds.
-		Weight::from_parts(15_262_000, 3517)
+		// Minimum execution time: 12_393_000 picoseconds.
+		Weight::from_parts(12_895_000, 3517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
 	fn set_collection_max_supply() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `340`
 		//  Estimated: `3549`
-		// Minimum execution time: 18_435_000 picoseconds.
-		Weight::from_parts(18_775_000, 3549)
+		// Minimum execution time: 16_034_000 picoseconds.
+		Weight::from_parts(16_617_000, 3549)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn update_mint_settings() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `323`
 		//  Estimated: `3538`
-		// Minimum execution time: 18_125_000 picoseconds.
-		Weight::from_parts(18_415_000, 3538)
+		// Minimum execution time: 15_812_000 picoseconds.
+		Weight::from_parts(16_644_000, 3538)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
 	fn set_price() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `518`
 		//  Estimated: `4326`
-		// Minimum execution time: 23_237_000 picoseconds.
-		Weight::from_parts(24_128_000, 4326)
+		// Minimum execution time: 21_650_000 picoseconds.
+		Weight::from_parts(22_443_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:1 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:2)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:2)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn buy_item() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `705`
 		//  Estimated: `4326`
-		// Minimum execution time: 53_291_000 picoseconds.
-		Weight::from_parts(54_614_000, 4326)
+		// Minimum execution time: 49_463_000 picoseconds.
+		Weight::from_parts(50_937_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
@@ -658,681 +662,685 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_192_000 picoseconds.
-		Weight::from_parts(4_039_901, 0)
-			// Standard Error: 10_309
-			.saturating_add(Weight::from_parts(3_934_017, 0).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts Item (r:2 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+		// Minimum execution time: 2_029_000 picoseconds.
+		Weight::from_parts(3_749_829, 0)
+			// Standard Error: 8_497
+			.saturating_add(Weight::from_parts(1_913_514, 0).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::Item` (r:2 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn create_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `494`
 		//  Estimated: `7662`
-		// Minimum execution time: 21_011_000 picoseconds.
-		Weight::from_parts(22_065_000, 7662)
+		// Minimum execution time: 18_181_000 picoseconds.
+		Weight::from_parts(18_698_000, 7662)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts PendingSwapOf (r:1 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::PendingSwapOf` (r:1 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn cancel_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `513`
 		//  Estimated: `4326`
-		// Minimum execution time: 21_423_000 picoseconds.
-		Weight::from_parts(21_743_000, 4326)
+		// Minimum execution time: 18_228_000 picoseconds.
+		Weight::from_parts(18_940_000, 4326)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:2 w:2)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:1 w:2)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:2 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:2 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:4)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:2)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:2 w:2)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:1 w:2)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:2 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:2 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:4)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:2)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
 	fn claim_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `834`
 		//  Estimated: `7662`
-		// Minimum execution time: 86_059_000 picoseconds.
-		Weight::from_parts(88_401_000, 7662)
+		// Minimum execution time: 77_983_000 picoseconds.
+		Weight::from_parts(79_887_000, 7662)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(10_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:2 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:10 w:10)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:2 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:10 w:10)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn mint_pre_signed(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `629`
-		//  Estimated: `6078 + n * (2921 ±0)`
-		// Minimum execution time: 146_746_000 picoseconds.
-		Weight::from_parts(152_885_862, 6078)
-			// Standard Error: 40_442
-			.saturating_add(Weight::from_parts(32_887_800, 0).saturating_mul(n.into()))
+		//  Estimated: `6078 + n * (2954 ±0)`
+		// Minimum execution time: 126_998_000 picoseconds.
+		Weight::from_parts(134_149_389, 6078)
+			// Standard Error: 33_180
+			.saturating_add(Weight::from_parts(30_711_206, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:10 w:10)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:10 w:10)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn set_attributes_pre_signed(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `659`
-		//  Estimated: `4326 + n * (2921 ±0)`
-		// Minimum execution time: 83_960_000 picoseconds.
-		Weight::from_parts(98_609_885, 4326)
-			// Standard Error: 85_991
-			.saturating_add(Weight::from_parts(32_633_495, 0).saturating_mul(n.into()))
+		//  Estimated: `4326 + n * (2954 ±0)`
+		// Minimum execution time: 66_213_000 picoseconds.
+		Weight::from_parts(81_661_819, 4326)
+			// Standard Error: 87_003
+			.saturating_add(Weight::from_parts(29_550_476, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Nfts NextCollectionId (r:1 w:1)
-	/// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:0 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::NextCollectionId` (r:1 w:1)
+	/// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `216`
 		//  Estimated: `3549`
-		// Minimum execution time: 40_489_000 picoseconds.
-		Weight::from_parts(41_320_000, 3549)
+		// Minimum execution time: 34_035_000 picoseconds.
+		Weight::from_parts(35_228_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts NextCollectionId (r:1 w:1)
-	/// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:0 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::NextCollectionId` (r:1 w:1)
+	/// Proof: `Nfts::NextCollectionId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn force_create() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3549`
-		// Minimum execution time: 23_257_000 picoseconds.
-		Weight::from_parts(23_770_000, 3549)
+		// Minimum execution time: 19_430_000 picoseconds.
+		Weight::from_parts(20_054_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:0)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:1)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1001 w:1000)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1000 w:1000)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:0 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:1)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1001 w:1000)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1000 w:1000)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:1)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// The range of component `m` is `[0, 1000]`.
 	/// The range of component `c` is `[0, 1000]`.
 	/// The range of component `a` is `[0, 1000]`.
 	fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `32220 + a * (332 ±0)`
-		//  Estimated: `2523990 + a * (2921 ±0)`
-		// Minimum execution time: 1_310_198_000 picoseconds.
-		Weight::from_parts(1_479_261_043, 2523990)
-			// Standard Error: 4_415
-			.saturating_add(Weight::from_parts(6_016_212, 0).saturating_mul(a.into()))
+		//  Measured:  `32204 + a * (366 ±0)`
+		//  Estimated: `2523990 + a * (2954 ±0)`
+		// Minimum execution time: 1_249_733_000 picoseconds.
+		Weight::from_parts(1_293_703_849, 2523990)
+			// Standard Error: 4_764
+			.saturating_add(Weight::from_parts(6_433_523, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(1004_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(a.into())))
 			.saturating_add(RocksDbWeight::get().writes(1005_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(a.into()))
-	}
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into()))
+	}
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	fn mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `455`
 		//  Estimated: `4326`
-		// Minimum execution time: 51_910_000 picoseconds.
-		Weight::from_parts(53_441_000, 4326)
+		// Minimum execution time: 48_645_000 picoseconds.
+		Weight::from_parts(50_287_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	fn force_mint() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `455`
 		//  Estimated: `4326`
-		// Minimum execution time: 50_168_000 picoseconds.
-		Weight::from_parts(51_380_000, 4326)
+		// Minimum execution time: 46_688_000 picoseconds.
+		Weight::from_parts(47_680_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:0)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn burn() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `564`
 		//  Estimated: `4326`
-		// Minimum execution time: 50_738_000 picoseconds.
-		Weight::from_parts(51_850_000, 4326)
-			.saturating_add(RocksDbWeight::get().reads(4_u64))
+		// Minimum execution time: 51_771_000 picoseconds.
+		Weight::from_parts(53_492_000, 4326)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:2)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:2)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `593`
 		//  Estimated: `4326`
-		// Minimum execution time: 41_055_000 picoseconds.
-		Weight::from_parts(42_336_000, 4326)
+		// Minimum execution time: 39_166_000 picoseconds.
+		Weight::from_parts(40_128_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:5000 w:5000)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:5000 w:5000)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	/// The range of component `i` is `[0, 5000]`.
 	fn redeposit(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `763 + i * (108 ±0)`
 		//  Estimated: `3549 + i * (3336 ±0)`
-		// Minimum execution time: 15_688_000 picoseconds.
-		Weight::from_parts(15_921_000, 3549)
-			// Standard Error: 14_827
-			.saturating_add(Weight::from_parts(17_105_395, 0).saturating_mul(i.into()))
+		// Minimum execution time: 13_804_000 picoseconds.
+		Weight::from_parts(14_159_000, 3549)
+			// Standard Error: 13_812
+			.saturating_add(Weight::from_parts(14_661_284, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into()))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn lock_item_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_981_000 picoseconds.
-		Weight::from_parts(20_676_000, 3534)
+		// Minimum execution time: 17_485_000 picoseconds.
+		Weight::from_parts(18_412_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn unlock_item_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_911_000 picoseconds.
-		Weight::from_parts(20_612_000, 3534)
+		// Minimum execution time: 17_335_000 picoseconds.
+		Weight::from_parts(18_543_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn lock_collection() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `340`
 		//  Estimated: `3549`
-		// Minimum execution time: 16_441_000 picoseconds.
-		Weight::from_parts(16_890_000, 3549)
+		// Minimum execution time: 14_608_000 picoseconds.
+		Weight::from_parts(15_696_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts OwnershipAcceptance (r:1 w:1)
-	/// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:2)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1)
+	/// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:2)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `388`
-		//  Estimated: `3549`
-		// Minimum execution time: 22_610_000 picoseconds.
-		Weight::from_parts(23_422_000, 3549)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+		//  Measured:  `562`
+		//  Estimated: `3593`
+		// Minimum execution time: 25_686_000 picoseconds.
+		Weight::from_parts(26_433_000, 3593)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:2 w:4)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:2 w:4)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
 	fn set_team() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `369`
 		//  Estimated: `6078`
-		// Minimum execution time: 39_739_000 picoseconds.
-		Weight::from_parts(41_306_000, 6078)
+		// Minimum execution time: 37_192_000 picoseconds.
+		Weight::from_parts(38_561_000, 6078)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionAccount (r:0 w:2)
-	/// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionAccount` (r:0 w:2)
+	/// Proof: `Nfts::CollectionAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn force_collection_owner() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `311`
 		//  Estimated: `3549`
-		// Minimum execution time: 17_685_000 picoseconds.
-		Weight::from_parts(18_258_000, 3549)
+		// Minimum execution time: 15_401_000 picoseconds.
+		Weight::from_parts(15_826_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:0 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:0 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn force_collection_config() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `276`
 		//  Estimated: `3549`
-		// Minimum execution time: 13_734_000 picoseconds.
-		Weight::from_parts(14_337_000, 3549)
+		// Minimum execution time: 11_683_000 picoseconds.
+		Weight::from_parts(12_255_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn lock_item_properties() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `435`
 		//  Estimated: `3534`
-		// Minimum execution time: 19_269_000 picoseconds.
-		Weight::from_parts(19_859_000, 3534)
+		// Minimum execution time: 16_899_000 picoseconds.
+		Weight::from_parts(17_404_000, 3534)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
 	fn set_attribute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `539`
-		//  Estimated: `3911`
-		// Minimum execution time: 51_540_000 picoseconds.
-		Weight::from_parts(52_663_000, 3911)
+		//  Estimated: `3944`
+		// Minimum execution time: 46_768_000 picoseconds.
+		Weight::from_parts(47_834_000, 3944)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
 	fn force_set_attribute() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `344`
-		//  Estimated: `3911`
-		// Minimum execution time: 26_529_000 picoseconds.
-		Weight::from_parts(27_305_000, 3911)
+		//  Estimated: `3944`
+		// Minimum execution time: 23_356_000 picoseconds.
+		Weight::from_parts(24_528_000, 3944)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Attribute (r:1 w:1)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Attribute` (r:1 w:1)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
 	fn clear_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `950`
-		//  Estimated: `3911`
-		// Minimum execution time: 46_951_000 picoseconds.
-		Weight::from_parts(48_481_000, 3911)
+		//  Measured:  `983`
+		//  Estimated: `3944`
+		// Minimum execution time: 43_061_000 picoseconds.
+		Weight::from_parts(44_024_000, 3944)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
 	fn approve_item_attributes() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `381`
 		//  Estimated: `4326`
-		// Minimum execution time: 17_222_000 picoseconds.
-		Weight::from_parts(17_819_000, 4326)
+		// Minimum execution time: 14_929_000 picoseconds.
+		Weight::from_parts(15_344_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1001 w:1000)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1001 w:1000)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 1000]`.
 	fn cancel_item_attributes_approval(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `837 + n * (364 ±0)`
-		//  Estimated: `4326 + n * (2921 ±0)`
-		// Minimum execution time: 26_185_000 picoseconds.
-		Weight::from_parts(27_038_000, 4326)
-			// Standard Error: 2_378
-			.saturating_add(Weight::from_parts(6_067_888, 0).saturating_mul(n.into()))
+		//  Measured:  `831 + n * (398 ±0)`
+		//  Estimated: `4326 + n * (2954 ±0)`
+		// Minimum execution time: 23_707_000 picoseconds.
+		Weight::from_parts(24_688_000, 4326)
+			// Standard Error: 3_813
+			.saturating_add(Weight::from_parts(6_422_256, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
 	fn set_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `539`
-		//  Estimated: `3605`
-		// Minimum execution time: 42_120_000 picoseconds.
-		Weight::from_parts(43_627_000, 3605)
+		//  Estimated: `3812`
+		// Minimum execution time: 37_882_000 picoseconds.
+		Weight::from_parts(39_222_000, 3812)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `642`
-		//  Estimated: `3605`
-		// Minimum execution time: 40_732_000 picoseconds.
-		Weight::from_parts(42_760_000, 3605)
+		//  Measured:  `849`
+		//  Estimated: `3812`
+		// Minimum execution time: 36_629_000 picoseconds.
+		Weight::from_parts(37_351_000, 3812)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:1 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
 	fn set_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `398`
-		//  Estimated: `3552`
-		// Minimum execution time: 39_443_000 picoseconds.
-		Weight::from_parts(40_482_000, 3552)
+		//  Estimated: `3759`
+		// Minimum execution time: 34_853_000 picoseconds.
+		Weight::from_parts(35_914_000, 3759)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionMetadataOf (r:1 w:1)
-	/// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(87), added: 2562, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionMetadataOf` (`max_values`: None, `max_size`: Some(294), added: 2769, mode: `MaxEncodedLen`)
 	fn clear_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `509`
-		//  Estimated: `3552`
-		// Minimum execution time: 37_676_000 picoseconds.
-		Weight::from_parts(39_527_000, 3552)
+		//  Measured:  `716`
+		//  Estimated: `3759`
+		// Minimum execution time: 33_759_000 picoseconds.
+		Weight::from_parts(34_729_000, 3759)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn approve_transfer() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `410`
 		//  Estimated: `4326`
-		// Minimum execution time: 20_787_000 picoseconds.
-		Weight::from_parts(21_315_000, 4326)
+		// Minimum execution time: 17_583_000 picoseconds.
+		Weight::from_parts(18_675_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn cancel_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418`
 		//  Estimated: `4326`
-		// Minimum execution time: 18_200_000 picoseconds.
-		Weight::from_parts(19_064_000, 4326)
+		// Minimum execution time: 15_036_000 picoseconds.
+		Weight::from_parts(15_995_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn clear_all_transfer_approvals() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418`
 		//  Estimated: `4326`
-		// Minimum execution time: 17_128_000 picoseconds.
-		Weight::from_parts(17_952_000, 4326)
+		// Minimum execution time: 14_666_000 picoseconds.
+		Weight::from_parts(15_152_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts OwnershipAcceptance (r:1 w:1)
-	/// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Nfts::OwnershipAcceptance` (r:1 w:1)
+	/// Proof: `Nfts::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_accept_ownership() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `3517`
-		// Minimum execution time: 14_667_000 picoseconds.
-		Weight::from_parts(15_262_000, 3517)
+		// Minimum execution time: 12_393_000 picoseconds.
+		Weight::from_parts(12_895_000, 3517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
 	fn set_collection_max_supply() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `340`
 		//  Estimated: `3549`
-		// Minimum execution time: 18_435_000 picoseconds.
-		Weight::from_parts(18_775_000, 3549)
+		// Minimum execution time: 16_034_000 picoseconds.
+		Weight::from_parts(16_617_000, 3549)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:1 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:1)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn update_mint_settings() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `323`
 		//  Estimated: `3538`
-		// Minimum execution time: 18_125_000 picoseconds.
-		Weight::from_parts(18_415_000, 3538)
+		// Minimum execution time: 15_812_000 picoseconds.
+		Weight::from_parts(16_644_000, 3538)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
 	fn set_price() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `518`
 		//  Estimated: `4326`
-		// Minimum execution time: 23_237_000 picoseconds.
-		Weight::from_parts(24_128_000, 4326)
+		// Minimum execution time: 21_650_000 picoseconds.
+		Weight::from_parts(22_443_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:1 w:1)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:1 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:2)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:1 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:2)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn buy_item() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `705`
 		//  Estimated: `4326`
-		// Minimum execution time: 53_291_000 picoseconds.
-		Weight::from_parts(54_614_000, 4326)
+		// Minimum execution time: 49_463_000 picoseconds.
+		Weight::from_parts(50_937_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
@@ -1341,120 +1349,120 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_192_000 picoseconds.
-		Weight::from_parts(4_039_901, 0)
-			// Standard Error: 10_309
-			.saturating_add(Weight::from_parts(3_934_017, 0).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts Item (r:2 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:0 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
+		// Minimum execution time: 2_029_000 picoseconds.
+		Weight::from_parts(3_749_829, 0)
+			// Standard Error: 8_497
+			.saturating_add(Weight::from_parts(1_913_514, 0).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::Item` (r:2 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:0 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
 	fn create_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `494`
 		//  Estimated: `7662`
-		// Minimum execution time: 21_011_000 picoseconds.
-		Weight::from_parts(22_065_000, 7662)
+		// Minimum execution time: 18_181_000 picoseconds.
+		Weight::from_parts(18_698_000, 7662)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts PendingSwapOf (r:1 w:1)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
+	/// Storage: `Nfts::PendingSwapOf` (r:1 w:1)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
 	fn cancel_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `513`
 		//  Estimated: `4326`
-		// Minimum execution time: 21_423_000 picoseconds.
-		Weight::from_parts(21_743_000, 4326)
+		// Minimum execution time: 18_228_000 picoseconds.
+		Weight::from_parts(18_940_000, 4326)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nfts Item (r:2 w:2)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts PendingSwapOf (r:1 w:2)
-	/// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:0)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:2 w:0)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:2 w:0)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:4)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemPriceOf (r:0 w:2)
-	/// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen)
+	/// Storage: `Nfts::Item` (r:2 w:2)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::PendingSwapOf` (r:1 w:2)
+	/// Proof: `Nfts::PendingSwapOf` (`max_values`: None, `max_size`: Some(71), added: 2546, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:0)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:2 w:0)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:2 w:0)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:4)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemPriceOf` (r:0 w:2)
+	/// Proof: `Nfts::ItemPriceOf` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`)
 	fn claim_swap() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `834`
 		//  Estimated: `7662`
-		// Minimum execution time: 86_059_000 picoseconds.
-		Weight::from_parts(88_401_000, 7662)
+		// Minimum execution time: 77_983_000 picoseconds.
+		Weight::from_parts(79_887_000, 7662)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(10_u64))
 	}
-	/// Storage: Nfts CollectionRoleOf (r:2 w:0)
-	/// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Item (r:1 w:1)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemConfigOf (r:1 w:1)
-	/// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:10 w:10)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemMetadataOf (r:1 w:1)
-	/// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen)
-	/// Storage: Nfts Account (r:0 w:1)
-	/// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen)
+	/// Storage: `Nfts::CollectionRoleOf` (r:2 w:0)
+	/// Proof: `Nfts::CollectionRoleOf` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Item` (r:1 w:1)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemConfigOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemConfigOf` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:10 w:10)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemMetadataOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemMetadataOf` (`max_values`: None, `max_size`: Some(347), added: 2822, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Account` (r:0 w:1)
+	/// Proof: `Nfts::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn mint_pre_signed(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `629`
-		//  Estimated: `6078 + n * (2921 ±0)`
-		// Minimum execution time: 146_746_000 picoseconds.
-		Weight::from_parts(152_885_862, 6078)
-			// Standard Error: 40_442
-			.saturating_add(Weight::from_parts(32_887_800, 0).saturating_mul(n.into()))
+		//  Estimated: `6078 + n * (2954 ±0)`
+		// Minimum execution time: 126_998_000 picoseconds.
+		Weight::from_parts(134_149_389, 6078)
+			// Standard Error: 33_180
+			.saturating_add(Weight::from_parts(30_711_206, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
-	}
-	/// Storage: Nfts Item (r:1 w:0)
-	/// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen)
-	/// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1)
-	/// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(681), added: 3156, mode: MaxEncodedLen)
-	/// Storage: Nfts CollectionConfigOf (r:1 w:0)
-	/// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
-	/// Storage: Nfts Collection (r:1 w:1)
-	/// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen)
-	/// Storage: Nfts Attribute (r:10 w:10)
-	/// Proof: Nfts Attribute (max_values: None, max_size: Some(446), added: 2921, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
+	}
+	/// Storage: `Nfts::Item` (r:1 w:0)
+	/// Proof: `Nfts::Item` (`max_values`: None, `max_size`: Some(861), added: 3336, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::ItemAttributesApprovalsOf` (r:1 w:1)
+	/// Proof: `Nfts::ItemAttributesApprovalsOf` (`max_values`: None, `max_size`: Some(681), added: 3156, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::CollectionConfigOf` (r:1 w:0)
+	/// Proof: `Nfts::CollectionConfigOf` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Collection` (r:1 w:1)
+	/// Proof: `Nfts::Collection` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
+	/// Storage: `Nfts::Attribute` (r:10 w:10)
+	/// Proof: `Nfts::Attribute` (`max_values`: None, `max_size`: Some(479), added: 2954, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 10]`.
 	fn set_attributes_pre_signed(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `659`
-		//  Estimated: `4326 + n * (2921 ±0)`
-		// Minimum execution time: 83_960_000 picoseconds.
-		Weight::from_parts(98_609_885, 4326)
-			// Standard Error: 85_991
-			.saturating_add(Weight::from_parts(32_633_495, 0).saturating_mul(n.into()))
+		//  Estimated: `4326 + n * (2954 ±0)`
+		// Minimum execution time: 66_213_000 picoseconds.
+		Weight::from_parts(81_661_819, 4326)
+			// Standard Error: 87_003
+			.saturating_add(Weight::from_parts(29_550_476, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2921).saturating_mul(n.into()))
+			.saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into()))
 	}
 }
diff --git a/substrate/frame/nis/src/weights.rs b/substrate/frame/nis/src/weights.rs
index cba2f004905..63908271391 100644
--- a/substrate/frame/nis/src/weights.rs
+++ b/substrate/frame/nis/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_nis
+//! Autogenerated weights for `pallet_nis`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/nis/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/nis/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_nis.
+/// Weight functions needed for `pallet_nis`.
 pub trait WeightInfo {
 	fn place_bid(l: u32, ) -> Weight;
 	fn place_bid_max() -> Weight;
@@ -65,367 +64,367 @@ pub trait WeightInfo {
 	fn process_bid() -> Weight;
 }
 
-/// Weights for pallet_nis using the Substrate node and recommended hardware.
+/// Weights for `pallet_nis` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 999]`.
 	fn place_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6176 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 49_410_000 picoseconds.
-		Weight::from_parts(57_832_282, 51487)
-			// Standard Error: 288
-			.saturating_add(Weight::from_parts(51_621, 0).saturating_mul(l.into()))
+		// Minimum execution time: 47_908_000 picoseconds.
+		Weight::from_parts(50_096_676, 51487)
+			// Standard Error: 208
+			.saturating_add(Weight::from_parts(41_318, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn place_bid_max() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `54178`
 		//  Estimated: `51487`
-		// Minimum execution time: 119_696_000 picoseconds.
-		Weight::from_parts(121_838_000, 51487)
+		// Minimum execution time: 100_836_000 picoseconds.
+		Weight::from_parts(102_497_000, 51487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[1, 1000]`.
 	fn retract_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6176 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 50_843_000 picoseconds.
-		Weight::from_parts(54_237_365, 51487)
-			// Standard Error: 243
-			.saturating_add(Weight::from_parts(67_732, 0).saturating_mul(l.into()))
+		// Minimum execution time: 45_830_000 picoseconds.
+		Weight::from_parts(46_667_676, 51487)
+			// Standard Error: 130
+			.saturating_add(Weight::from_parts(33_007, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Summary (r:1 w:0)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:0)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn fund_deficit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `191`
 		//  Estimated: `3593`
-		// Minimum execution time: 40_752_000 picoseconds.
-		Weight::from_parts(41_899_000, 3593)
+		// Minimum execution time: 30_440_000 picoseconds.
+		Weight::from_parts(31_240_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn communify() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `668`
 		//  Estimated: `3675`
-		// Minimum execution time: 79_779_000 picoseconds.
-		Weight::from_parts(82_478_000, 3675)
+		// Minimum execution time: 71_017_000 picoseconds.
+		Weight::from_parts(72_504_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn privatize() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `829`
 		//  Estimated: `3675`
-		// Minimum execution time: 99_588_000 picoseconds.
-		Weight::from_parts(102_340_000, 3675)
+		// Minimum execution time: 89_138_000 picoseconds.
+		Weight::from_parts(91_290_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn thaw_private() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `354`
-		//  Estimated: `3593`
-		// Minimum execution time: 53_094_000 picoseconds.
-		Weight::from_parts(54_543_000, 3593)
+		//  Estimated: `3658`
+		// Minimum execution time: 47_917_000 picoseconds.
+		Weight::from_parts(49_121_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn thaw_communal() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `773`
 		//  Estimated: `3675`
-		// Minimum execution time: 107_248_000 picoseconds.
-		Weight::from_parts(109_923_000, 3675)
+		// Minimum execution time: 91_320_000 picoseconds.
+		Weight::from_parts(93_080_000, 3675)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn process_queues() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6624`
 		//  Estimated: `7487`
-		// Minimum execution time: 27_169_000 picoseconds.
-		Weight::from_parts(29_201_000, 7487)
+		// Minimum execution time: 20_117_000 picoseconds.
+		Weight::from_parts(20_829_000, 7487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
 	fn process_queue() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `51487`
-		// Minimum execution time: 4_540_000 picoseconds.
-		Weight::from_parts(4_699_000, 51487)
+		// Minimum execution time: 4_460_000 picoseconds.
+		Weight::from_parts(4_797_000, 51487)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nis Receipts (r:0 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:0 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn process_bid() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_085_000 picoseconds.
-		Weight::from_parts(7_336_000, 0)
+		// Minimum execution time: 4_609_000 picoseconds.
+		Weight::from_parts(4_834_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[0, 999]`.
 	fn place_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6176 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 49_410_000 picoseconds.
-		Weight::from_parts(57_832_282, 51487)
-			// Standard Error: 288
-			.saturating_add(Weight::from_parts(51_621, 0).saturating_mul(l.into()))
+		// Minimum execution time: 47_908_000 picoseconds.
+		Weight::from_parts(50_096_676, 51487)
+			// Standard Error: 208
+			.saturating_add(Weight::from_parts(41_318, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn place_bid_max() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `54178`
 		//  Estimated: `51487`
-		// Minimum execution time: 119_696_000 picoseconds.
-		Weight::from_parts(121_838_000, 51487)
+		// Minimum execution time: 100_836_000 picoseconds.
+		Weight::from_parts(102_497_000, 51487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[1, 1000]`.
 	fn retract_bid(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6176 + l * (48 ±0)`
 		//  Estimated: `51487`
-		// Minimum execution time: 50_843_000 picoseconds.
-		Weight::from_parts(54_237_365, 51487)
-			// Standard Error: 243
-			.saturating_add(Weight::from_parts(67_732, 0).saturating_mul(l.into()))
+		// Minimum execution time: 45_830_000 picoseconds.
+		Weight::from_parts(46_667_676, 51487)
+			// Standard Error: 130
+			.saturating_add(Weight::from_parts(33_007, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Summary (r:1 w:0)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:0)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn fund_deficit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `191`
 		//  Estimated: `3593`
-		// Minimum execution time: 40_752_000 picoseconds.
-		Weight::from_parts(41_899_000, 3593)
+		// Minimum execution time: 30_440_000 picoseconds.
+		Weight::from_parts(31_240_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
 	fn communify() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `668`
 		//  Estimated: `3675`
-		// Minimum execution time: 79_779_000 picoseconds.
-		Weight::from_parts(82_478_000, 3675)
+		// Minimum execution time: 71_017_000 picoseconds.
+		Weight::from_parts(72_504_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn privatize() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `829`
 		//  Estimated: `3675`
-		// Minimum execution time: 99_588_000 picoseconds.
-		Weight::from_parts(102_340_000, 3675)
+		// Minimum execution time: 89_138_000 picoseconds.
+		Weight::from_parts(91_290_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Balances Holds (r:1 w:1)
-	/// Proof: Balances Holds (max_values: None, max_size: Some(85), added: 2560, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn thaw_private() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `354`
-		//  Estimated: `3593`
-		// Minimum execution time: 53_094_000 picoseconds.
-		Weight::from_parts(54_543_000, 3593)
+		//  Estimated: `3658`
+		// Minimum execution time: 47_917_000 picoseconds.
+		Weight::from_parts(49_121_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Nis Receipts (r:1 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:1 w:1)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:1 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn thaw_communal() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `773`
 		//  Estimated: `3675`
-		// Minimum execution time: 107_248_000 picoseconds.
-		Weight::from_parts(109_923_000, 3675)
+		// Minimum execution time: 91_320_000 picoseconds.
+		Weight::from_parts(93_080_000, 3675)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Nis Summary (r:1 w:1)
-	/// Proof: Nis Summary (max_values: Some(1), max_size: Some(40), added: 535, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:0)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Nis QueueTotals (r:1 w:1)
-	/// Proof: Nis QueueTotals (max_values: Some(1), max_size: Some(6002), added: 6497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Summary` (r:1 w:1)
+	/// Proof: `Nis::Summary` (`max_values`: Some(1), `max_size`: Some(40), added: 535, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:0)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Nis::QueueTotals` (r:1 w:1)
+	/// Proof: `Nis::QueueTotals` (`max_values`: Some(1), `max_size`: Some(6002), added: 6497, mode: `MaxEncodedLen`)
 	fn process_queues() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `6624`
 		//  Estimated: `7487`
-		// Minimum execution time: 27_169_000 picoseconds.
-		Weight::from_parts(29_201_000, 7487)
+		// Minimum execution time: 20_117_000 picoseconds.
+		Weight::from_parts(20_829_000, 7487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Nis Queues (r:1 w:1)
-	/// Proof: Nis Queues (max_values: None, max_size: Some(48022), added: 50497, mode: MaxEncodedLen)
+	/// Storage: `Nis::Queues` (r:1 w:1)
+	/// Proof: `Nis::Queues` (`max_values`: None, `max_size`: Some(48022), added: 50497, mode: `MaxEncodedLen`)
 	fn process_queue() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `51487`
-		// Minimum execution time: 4_540_000 picoseconds.
-		Weight::from_parts(4_699_000, 51487)
+		// Minimum execution time: 4_460_000 picoseconds.
+		Weight::from_parts(4_797_000, 51487)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Nis Receipts (r:0 w:1)
-	/// Proof: Nis Receipts (max_values: None, max_size: Some(81), added: 2556, mode: MaxEncodedLen)
+	/// Storage: `Nis::Receipts` (r:0 w:1)
+	/// Proof: `Nis::Receipts` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`)
 	fn process_bid() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_085_000 picoseconds.
-		Weight::from_parts(7_336_000, 0)
+		// Minimum execution time: 4_609_000 picoseconds.
+		Weight::from_parts(4_834_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/nomination-pools/src/weights.rs b/substrate/frame/nomination-pools/src/weights.rs
index 047a17c3f9a..2749af7937f 100644
--- a/substrate/frame/nomination-pools/src/weights.rs
+++ b/substrate/frame/nomination-pools/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_nomination_pools`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-11-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_nomination_pools
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_nomination_pools
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/nomination-pools/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -112,8 +114,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3425`
 		//  Estimated: `8877`
-		// Minimum execution time: 184_295_000 picoseconds.
-		Weight::from_parts(188_860_000, 8877)
+		// Minimum execution time: 181_861_000 picoseconds.
+		Weight::from_parts(186_375_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(20_u64))
 			.saturating_add(T::DbWeight::get().writes(13_u64))
 	}
@@ -145,8 +147,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3435`
 		//  Estimated: `8877`
-		// Minimum execution time: 188_777_000 picoseconds.
-		Weight::from_parts(192_646_000, 8877)
+		// Minimum execution time: 182_273_000 picoseconds.
+		Weight::from_parts(186_635_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(17_u64))
 			.saturating_add(T::DbWeight::get().writes(13_u64))
 	}
@@ -180,8 +182,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3500`
 		//  Estimated: `8877`
-		// Minimum execution time: 221_728_000 picoseconds.
-		Weight::from_parts(227_569_000, 8877)
+		// Minimum execution time: 217_878_000 picoseconds.
+		Weight::from_parts(221_493_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(18_u64))
 			.saturating_add(T::DbWeight::get().writes(14_u64))
 	}
@@ -201,8 +203,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1172`
 		//  Estimated: `3719`
-		// Minimum execution time: 75_310_000 picoseconds.
-		Weight::from_parts(77_709_000, 3719)
+		// Minimum execution time: 74_509_000 picoseconds.
+		Weight::from_parts(76_683_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -242,8 +244,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3622`
 		//  Estimated: `27847`
-		// Minimum execution time: 170_656_000 picoseconds.
-		Weight::from_parts(174_950_000, 27847)
+		// Minimum execution time: 166_424_000 picoseconds.
+		Weight::from_parts(169_698_000, 27847)
 			.saturating_add(T::DbWeight::get().reads(20_u64))
 			.saturating_add(T::DbWeight::get().writes(13_u64))
 	}
@@ -259,18 +261,20 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Freezes` (r:1 w:0)
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn pool_withdraw_unbonded(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1817`
+		//  Measured:  `1848`
 		//  Estimated: `4764`
-		// Minimum execution time: 68_866_000 picoseconds.
-		Weight::from_parts(72_312_887, 4764)
-			// Standard Error: 1_635
-			.saturating_add(Weight::from_parts(41_679, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(7_u64))
+		// Minimum execution time: 66_110_000 picoseconds.
+		Weight::from_parts(68_620_141, 4764)
+			// Standard Error: 1_379
+			.saturating_add(Weight::from_parts(54_961, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `NominationPools::PoolMembers` (r:1 w:1)
@@ -291,6 +295,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1)
@@ -300,13 +306,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2207`
+		//  Measured:  `2238`
 		//  Estimated: `27847`
-		// Minimum execution time: 131_383_000 picoseconds.
-		Weight::from_parts(136_595_971, 27847)
-			// Standard Error: 2_715
-			.saturating_add(Weight::from_parts(52_351, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(11_u64))
+		// Minimum execution time: 125_669_000 picoseconds.
+		Weight::from_parts(130_907_641, 27847)
+			// Standard Error: 2_490
+			.saturating_add(Weight::from_parts(75_219, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(9_u64))
 	}
 	/// Storage: `NominationPools::PoolMembers` (r:1 w:1)
@@ -333,12 +339,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::Nominators` (r:1 w:0)
 	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1)
 	/// Proof: `NominationPools::CounterForPoolMembers` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
-	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1)
-	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForReversePoolIdLookup` (r:1 w:1)
 	/// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::RewardPools` (r:1 w:1)
@@ -360,8 +366,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2525`
 		//  Estimated: `27847`
-		// Minimum execution time: 233_314_000 picoseconds.
-		Weight::from_parts(241_694_316, 27847)
+		// Minimum execution time: 225_700_000 picoseconds.
+		Weight::from_parts(234_390_990, 27847)
 			.saturating_add(T::DbWeight::get().reads(24_u64))
 			.saturating_add(T::DbWeight::get().writes(20_u64))
 	}
@@ -413,8 +419,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1169`
 		//  Estimated: `8538`
-		// Minimum execution time: 171_465_000 picoseconds.
-		Weight::from_parts(176_478_000, 8538)
+		// Minimum execution time: 167_171_000 picoseconds.
+		Weight::from_parts(170_531_000, 8538)
 			.saturating_add(T::DbWeight::get().reads(23_u64))
 			.saturating_add(T::DbWeight::get().writes(17_u64))
 	}
@@ -447,10 +453,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1808`
 		//  Estimated: `4556 + n * (2520 ±0)`
-		// Minimum execution time: 63_588_000 picoseconds.
-		Weight::from_parts(64_930_584, 4556)
-			// Standard Error: 9_167
-			.saturating_add(Weight::from_parts(1_595_779, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_785_000 picoseconds.
+		Weight::from_parts(64_592_302, 4556)
+			// Standard Error: 9_416
+			.saturating_add(Weight::from_parts(1_524_398, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
@@ -466,8 +472,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1434`
 		//  Estimated: `4556`
-		// Minimum execution time: 32_899_000 picoseconds.
-		Weight::from_parts(33_955_000, 4556)
+		// Minimum execution time: 32_096_000 picoseconds.
+		Weight::from_parts(33_533_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -482,10 +488,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3735`
-		// Minimum execution time: 13_778_000 picoseconds.
-		Weight::from_parts(14_770_006, 3735)
-			// Standard Error: 151
-			.saturating_add(Weight::from_parts(1_900, 0).saturating_mul(n.into()))
+		// Minimum execution time: 13_914_000 picoseconds.
+		Weight::from_parts(14_800_402, 3735)
+			// Standard Error: 146
+			.saturating_add(Weight::from_parts(940, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -505,8 +511,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_550_000 picoseconds.
-		Weight::from_parts(4_935_000, 0)
+		// Minimum execution time: 4_373_000 picoseconds.
+		Weight::from_parts(4_592_000, 0)
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
 	/// Storage: `NominationPools::BondedPools` (r:1 w:1)
@@ -515,8 +521,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_759_000 picoseconds.
-		Weight::from_parts(17_346_000, 3719)
+		// Minimum execution time: 16_662_000 picoseconds.
+		Weight::from_parts(17_531_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -542,8 +548,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1971`
 		//  Estimated: `4556`
-		// Minimum execution time: 61_970_000 picoseconds.
-		Weight::from_parts(63_738_000, 4556)
+		// Minimum execution time: 61_348_000 picoseconds.
+		Weight::from_parts(63_712_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
@@ -559,8 +565,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `804`
 		//  Estimated: `3719`
-		// Minimum execution time: 31_950_000 picoseconds.
-		Weight::from_parts(33_190_000, 3719)
+		// Minimum execution time: 32_232_000 picoseconds.
+		Weight::from_parts(33_433_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -572,8 +578,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `572`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_807_000 picoseconds.
-		Weight::from_parts(17_733_000, 3719)
+		// Minimum execution time: 16_774_000 picoseconds.
+		Weight::from_parts(17_671_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -583,8 +589,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_710_000 picoseconds.
-		Weight::from_parts(17_563_000, 3719)
+		// Minimum execution time: 16_724_000 picoseconds.
+		Weight::from_parts(17_181_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -594,8 +600,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_493_000 picoseconds.
-		Weight::from_parts(17_022_000, 3719)
+		// Minimum execution time: 16_362_000 picoseconds.
+		Weight::from_parts(17_135_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -607,8 +613,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `542`
 		//  Estimated: `3702`
-		// Minimum execution time: 14_248_000 picoseconds.
-		Weight::from_parts(15_095_000, 3702)
+		// Minimum execution time: 14_125_000 picoseconds.
+		Weight::from_parts(14_705_000, 3702)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -624,8 +630,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1002`
 		//  Estimated: `3719`
-		// Minimum execution time: 61_969_000 picoseconds.
-		Weight::from_parts(63_965_000, 3719)
+		// Minimum execution time: 61_699_000 picoseconds.
+		Weight::from_parts(63_605_000, 3719)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -641,8 +647,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `901`
 		//  Estimated: `4764`
-		// Minimum execution time: 65_462_000 picoseconds.
-		Weight::from_parts(67_250_000, 4764)
+		// Minimum execution time: 64_930_000 picoseconds.
+		Weight::from_parts(66_068_000, 4764)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -686,8 +692,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3425`
 		//  Estimated: `8877`
-		// Minimum execution time: 184_295_000 picoseconds.
-		Weight::from_parts(188_860_000, 8877)
+		// Minimum execution time: 181_861_000 picoseconds.
+		Weight::from_parts(186_375_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(20_u64))
 			.saturating_add(RocksDbWeight::get().writes(13_u64))
 	}
@@ -719,8 +725,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3435`
 		//  Estimated: `8877`
-		// Minimum execution time: 188_777_000 picoseconds.
-		Weight::from_parts(192_646_000, 8877)
+		// Minimum execution time: 182_273_000 picoseconds.
+		Weight::from_parts(186_635_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(17_u64))
 			.saturating_add(RocksDbWeight::get().writes(13_u64))
 	}
@@ -754,8 +760,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3500`
 		//  Estimated: `8877`
-		// Minimum execution time: 221_728_000 picoseconds.
-		Weight::from_parts(227_569_000, 8877)
+		// Minimum execution time: 217_878_000 picoseconds.
+		Weight::from_parts(221_493_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(18_u64))
 			.saturating_add(RocksDbWeight::get().writes(14_u64))
 	}
@@ -775,8 +781,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1172`
 		//  Estimated: `3719`
-		// Minimum execution time: 75_310_000 picoseconds.
-		Weight::from_parts(77_709_000, 3719)
+		// Minimum execution time: 74_509_000 picoseconds.
+		Weight::from_parts(76_683_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -816,8 +822,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3622`
 		//  Estimated: `27847`
-		// Minimum execution time: 170_656_000 picoseconds.
-		Weight::from_parts(174_950_000, 27847)
+		// Minimum execution time: 166_424_000 picoseconds.
+		Weight::from_parts(169_698_000, 27847)
 			.saturating_add(RocksDbWeight::get().reads(20_u64))
 			.saturating_add(RocksDbWeight::get().writes(13_u64))
 	}
@@ -833,18 +839,20 @@ impl WeightInfo for () {
 	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Freezes` (r:1 w:0)
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn pool_withdraw_unbonded(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1817`
+		//  Measured:  `1848`
 		//  Estimated: `4764`
-		// Minimum execution time: 68_866_000 picoseconds.
-		Weight::from_parts(72_312_887, 4764)
-			// Standard Error: 1_635
-			.saturating_add(Weight::from_parts(41_679, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(7_u64))
+		// Minimum execution time: 66_110_000 picoseconds.
+		Weight::from_parts(68_620_141, 4764)
+			// Standard Error: 1_379
+			.saturating_add(Weight::from_parts(54_961, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `NominationPools::PoolMembers` (r:1 w:1)
@@ -865,6 +873,8 @@ impl WeightInfo for () {
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
 	/// Storage: `System::Account` (r:1 w:1)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1)
@@ -874,13 +884,13 @@ impl WeightInfo for () {
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `2207`
+		//  Measured:  `2238`
 		//  Estimated: `27847`
-		// Minimum execution time: 131_383_000 picoseconds.
-		Weight::from_parts(136_595_971, 27847)
-			// Standard Error: 2_715
-			.saturating_add(Weight::from_parts(52_351, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(11_u64))
+		// Minimum execution time: 125_669_000 picoseconds.
+		Weight::from_parts(130_907_641, 27847)
+			// Standard Error: 2_490
+			.saturating_add(Weight::from_parts(75_219, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(9_u64))
 	}
 	/// Storage: `NominationPools::PoolMembers` (r:1 w:1)
@@ -907,12 +917,12 @@ impl WeightInfo for () {
 	/// Proof: `Staking::Validators` (`max_values`: None, `max_size`: Some(45), added: 2520, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::Nominators` (r:1 w:0)
 	/// Proof: `Staking::Nominators` (`max_values`: None, `max_size`: Some(558), added: 3033, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::TotalValueLocked` (r:1 w:1)
 	/// Proof: `NominationPools::TotalValueLocked` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForPoolMembers` (r:1 w:1)
 	/// Proof: `NominationPools::CounterForPoolMembers` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
-	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:1)
-	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::CounterForReversePoolIdLookup` (r:1 w:1)
 	/// Proof: `NominationPools::CounterForReversePoolIdLookup` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `NominationPools::RewardPools` (r:1 w:1)
@@ -934,8 +944,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2525`
 		//  Estimated: `27847`
-		// Minimum execution time: 233_314_000 picoseconds.
-		Weight::from_parts(241_694_316, 27847)
+		// Minimum execution time: 225_700_000 picoseconds.
+		Weight::from_parts(234_390_990, 27847)
 			.saturating_add(RocksDbWeight::get().reads(24_u64))
 			.saturating_add(RocksDbWeight::get().writes(20_u64))
 	}
@@ -987,8 +997,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1169`
 		//  Estimated: `8538`
-		// Minimum execution time: 171_465_000 picoseconds.
-		Weight::from_parts(176_478_000, 8538)
+		// Minimum execution time: 167_171_000 picoseconds.
+		Weight::from_parts(170_531_000, 8538)
 			.saturating_add(RocksDbWeight::get().reads(23_u64))
 			.saturating_add(RocksDbWeight::get().writes(17_u64))
 	}
@@ -1021,10 +1031,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1808`
 		//  Estimated: `4556 + n * (2520 ±0)`
-		// Minimum execution time: 63_588_000 picoseconds.
-		Weight::from_parts(64_930_584, 4556)
-			// Standard Error: 9_167
-			.saturating_add(Weight::from_parts(1_595_779, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_785_000 picoseconds.
+		Weight::from_parts(64_592_302, 4556)
+			// Standard Error: 9_416
+			.saturating_add(Weight::from_parts(1_524_398, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
@@ -1040,8 +1050,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1434`
 		//  Estimated: `4556`
-		// Minimum execution time: 32_899_000 picoseconds.
-		Weight::from_parts(33_955_000, 4556)
+		// Minimum execution time: 32_096_000 picoseconds.
+		Weight::from_parts(33_533_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1056,10 +1066,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3735`
-		// Minimum execution time: 13_778_000 picoseconds.
-		Weight::from_parts(14_770_006, 3735)
-			// Standard Error: 151
-			.saturating_add(Weight::from_parts(1_900, 0).saturating_mul(n.into()))
+		// Minimum execution time: 13_914_000 picoseconds.
+		Weight::from_parts(14_800_402, 3735)
+			// Standard Error: 146
+			.saturating_add(Weight::from_parts(940, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -1079,8 +1089,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_550_000 picoseconds.
-		Weight::from_parts(4_935_000, 0)
+		// Minimum execution time: 4_373_000 picoseconds.
+		Weight::from_parts(4_592_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
 	/// Storage: `NominationPools::BondedPools` (r:1 w:1)
@@ -1089,8 +1099,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_759_000 picoseconds.
-		Weight::from_parts(17_346_000, 3719)
+		// Minimum execution time: 16_662_000 picoseconds.
+		Weight::from_parts(17_531_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1116,8 +1126,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1971`
 		//  Estimated: `4556`
-		// Minimum execution time: 61_970_000 picoseconds.
-		Weight::from_parts(63_738_000, 4556)
+		// Minimum execution time: 61_348_000 picoseconds.
+		Weight::from_parts(63_712_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
@@ -1133,8 +1143,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `804`
 		//  Estimated: `3719`
-		// Minimum execution time: 31_950_000 picoseconds.
-		Weight::from_parts(33_190_000, 3719)
+		// Minimum execution time: 32_232_000 picoseconds.
+		Weight::from_parts(33_433_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -1146,8 +1156,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `572`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_807_000 picoseconds.
-		Weight::from_parts(17_733_000, 3719)
+		// Minimum execution time: 16_774_000 picoseconds.
+		Weight::from_parts(17_671_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1157,8 +1167,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_710_000 picoseconds.
-		Weight::from_parts(17_563_000, 3719)
+		// Minimum execution time: 16_724_000 picoseconds.
+		Weight::from_parts(17_181_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1168,8 +1178,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `532`
 		//  Estimated: `3719`
-		// Minimum execution time: 16_493_000 picoseconds.
-		Weight::from_parts(17_022_000, 3719)
+		// Minimum execution time: 16_362_000 picoseconds.
+		Weight::from_parts(17_135_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1181,8 +1191,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `542`
 		//  Estimated: `3702`
-		// Minimum execution time: 14_248_000 picoseconds.
-		Weight::from_parts(15_095_000, 3702)
+		// Minimum execution time: 14_125_000 picoseconds.
+		Weight::from_parts(14_705_000, 3702)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1198,8 +1208,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1002`
 		//  Estimated: `3719`
-		// Minimum execution time: 61_969_000 picoseconds.
-		Weight::from_parts(63_965_000, 3719)
+		// Minimum execution time: 61_699_000 picoseconds.
+		Weight::from_parts(63_605_000, 3719)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -1215,8 +1225,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `901`
 		//  Estimated: `4764`
-		// Minimum execution time: 65_462_000 picoseconds.
-		Weight::from_parts(67_250_000, 4764)
+		// Minimum execution time: 64_930_000 picoseconds.
+		Weight::from_parts(66_068_000, 4764)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
diff --git a/substrate/frame/offences/benchmarking/src/mock.rs b/substrate/frame/offences/benchmarking/src/mock.rs
index 01ad8d64f10..b3260f0841f 100644
--- a/substrate/frame/offences/benchmarking/src/mock.rs
+++ b/substrate/frame/offences/benchmarking/src/mock.rs
@@ -148,7 +148,7 @@ parameter_types! {
 	pub static ElectionsBounds: ElectionBounds = ElectionBoundsBuilder::default().build();
 }
 
-pub type Extrinsic = sp_runtime::testing::TestXt<RuntimeCall, ()>;
+pub type Extrinsic = sp_runtime::generic::UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 
 pub struct OnChainSeqPhragmen;
 impl onchain::Config for OnChainSeqPhragmen {
diff --git a/substrate/frame/parameters/src/weights.rs b/substrate/frame/parameters/src/weights.rs
index 6746960b1b7..340eb9e31b7 100644
--- a/substrate/frame/parameters/src/weights.rs
+++ b/substrate/frame/parameters/src/weights.rs
@@ -18,25 +18,27 @@
 //! Autogenerated weights for `pallet_parameters`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
-//! DATE: 2024-02-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_parameters
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_parameters
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/parameters/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -55,22 +57,30 @@ pub trait WeightInfo {
 /// Weights for `pallet_parameters` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	/// Storage: `Parameters::Parameters` (r:1 w:1)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn set_parameter() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
+		//  Measured:  `3`
+		//  Estimated: `3501`
+		// Minimum execution time: 8_400_000 picoseconds.
+		Weight::from_parts(8_682_000, 3501)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
 // For backwards compatibility and tests.
 impl WeightInfo for () {
+	/// Storage: `Parameters::Parameters` (r:1 w:1)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
 	fn set_parameter() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 0_000 picoseconds.
-		Weight::from_parts(0, 0)
+		//  Measured:  `3`
+		//  Estimated: `3501`
+		// Minimum execution time: 8_400_000 picoseconds.
+		Weight::from_parts(8_682_000, 3501)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/preimage/src/weights.rs b/substrate/frame/preimage/src/weights.rs
index c11ab74c1e5..6167cd53029 100644
--- a/substrate/frame/preimage/src/weights.rs
+++ b/substrate/frame/preimage/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_preimage`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-09-06, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-mia4uyug-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_preimage
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_preimage
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/preimage/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -70,200 +72,209 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
-		//  Estimated: `3556`
-		// Minimum execution time: 15_936_000 picoseconds.
-		Weight::from_parts(16_271_000, 3556)
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_916, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(2_u64))
+		//  Measured:  `112`
+		//  Estimated: `6012`
+		// Minimum execution time: 48_893_000 picoseconds.
+		Weight::from_parts(44_072_327, 6012)
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(1_684, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_requested_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 16_468_000 picoseconds.
-		Weight::from_parts(17_031_000, 3556)
+		// Minimum execution time: 15_675_000 picoseconds.
+		Weight::from_parts(4_564_145, 3556)
 			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_948, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_678, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_no_deposit_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 16_342_000 picoseconds.
-		Weight::from_parts(16_535_000, 3556)
+		// Minimum execution time: 14_959_000 picoseconds.
+		Weight::from_parts(15_335_000, 3556)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_906, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_687, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `172`
-		//  Estimated: `3556`
-		// Minimum execution time: 31_047_000 picoseconds.
-		Weight::from_parts(34_099_000, 3556)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(2_u64))
+		//  Measured:  `311`
+		//  Estimated: `3658`
+		// Minimum execution time: 47_378_000 picoseconds.
+		Weight::from_parts(48_776_000, 3658)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 32_559_000 picoseconds.
-		Weight::from_parts(36_677_000, 3556)
+		// Minimum execution time: 20_939_000 picoseconds.
+		Weight::from_parts(21_577_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `172`
+		//  Measured:  `255`
 		//  Estimated: `3556`
-		// Minimum execution time: 27_887_000 picoseconds.
-		Weight::from_parts(30_303_000, 3556)
+		// Minimum execution time: 17_945_000 picoseconds.
+		Weight::from_parts(18_448_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 17_256_000 picoseconds.
-		Weight::from_parts(19_481_000, 3556)
+		// Minimum execution time: 12_132_000 picoseconds.
+		Weight::from_parts(12_710_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
+		//  Measured:  `109`
 		//  Estimated: `3556`
-		// Minimum execution time: 22_344_000 picoseconds.
-		Weight::from_parts(23_868_000, 3556)
+		// Minimum execution time: 13_014_000 picoseconds.
+		Weight::from_parts(13_726_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_requested_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_542_000 picoseconds.
-		Weight::from_parts(11_571_000, 3556)
+		// Minimum execution time: 9_785_000 picoseconds.
+		Weight::from_parts(10_266_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unrequest_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 29_054_000 picoseconds.
-		Weight::from_parts(32_996_000, 3556)
+		// Minimum execution time: 18_764_000 picoseconds.
+		Weight::from_parts(19_635_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_775_000 picoseconds.
-		Weight::from_parts(11_937_000, 3556)
+		// Minimum execution time: 9_624_000 picoseconds.
+		Weight::from_parts(10_044_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_multi_referenced_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_696_000 picoseconds.
-		Weight::from_parts(11_717_000, 3556)
+		// Minimum execution time: 9_432_000 picoseconds.
+		Weight::from_parts(9_991_000, 3556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: `Preimage::StatusFor` (r:1024 w:1024)
+	/// Storage: `Preimage::StatusFor` (r:1023 w:1023)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
-	/// Storage: `System::Account` (r:1 w:1)
+	/// Storage: `System::Account` (r:1023 w:1023)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
-	/// Storage: `Preimage::RequestStatusFor` (r:0 w:1024)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
-	/// The range of component `n` is `[0, 1024]`.
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1023 w:1023)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:0 w:1023)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 1024]`.
 	fn ensure_updated(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `193 + n * (91 ±0)`
-		//  Estimated: `3593 + n * (2566 ±0)`
-		// Minimum execution time: 2_452_000 picoseconds.
-		Weight::from_parts(2_641_000, 3593)
-			// Standard Error: 19_797
-			.saturating_add(Weight::from_parts(15_620_946, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(1_u64))
-			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
-			.saturating_add(T::DbWeight::get().writes(1_u64))
-			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into()))
+		//  Measured:  `0 + n * (227 ±0)`
+		//  Estimated: `6012 + n * (2668 ±0)`
+		// Minimum execution time: 54_056_000 picoseconds.
+		Weight::from_parts(54_912_000, 6012)
+			// Standard Error: 42_469
+			.saturating_add(Weight::from_parts(50_710_258, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(n.into())))
+			.saturating_add(T::DbWeight::get().writes((4_u64).saturating_mul(n.into())))
+			.saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into()))
 	}
 }
 
@@ -272,199 +283,208 @@ impl WeightInfo for () {
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
-		//  Estimated: `3556`
-		// Minimum execution time: 15_936_000 picoseconds.
-		Weight::from_parts(16_271_000, 3556)
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_916, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(2_u64))
+		//  Measured:  `112`
+		//  Estimated: `6012`
+		// Minimum execution time: 48_893_000 picoseconds.
+		Weight::from_parts(44_072_327, 6012)
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(1_684, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_requested_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 16_468_000 picoseconds.
-		Weight::from_parts(17_031_000, 3556)
+		// Minimum execution time: 15_675_000 picoseconds.
+		Weight::from_parts(4_564_145, 3556)
 			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_948, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_678, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 4194304]`.
 	fn note_no_deposit_preimage(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 16_342_000 picoseconds.
-		Weight::from_parts(16_535_000, 3556)
+		// Minimum execution time: 14_959_000 picoseconds.
+		Weight::from_parts(15_335_000, 3556)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_906, 0).saturating_mul(s.into()))
+			.saturating_add(Weight::from_parts(1_687, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `172`
-		//  Estimated: `3556`
-		// Minimum execution time: 31_047_000 picoseconds.
-		Weight::from_parts(34_099_000, 3556)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(2_u64))
+		//  Measured:  `311`
+		//  Estimated: `3658`
+		// Minimum execution time: 47_378_000 picoseconds.
+		Weight::from_parts(48_776_000, 3658)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unnote_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 32_559_000 picoseconds.
-		Weight::from_parts(36_677_000, 3556)
+		// Minimum execution time: 20_939_000 picoseconds.
+		Weight::from_parts(21_577_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `172`
+		//  Measured:  `255`
 		//  Estimated: `3556`
-		// Minimum execution time: 27_887_000 picoseconds.
-		Weight::from_parts(30_303_000, 3556)
+		// Minimum execution time: 17_945_000 picoseconds.
+		Weight::from_parts(18_448_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_no_deposit_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 17_256_000 picoseconds.
-		Weight::from_parts(19_481_000, 3556)
+		// Minimum execution time: 12_132_000 picoseconds.
+		Weight::from_parts(12_710_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `42`
+		//  Measured:  `109`
 		//  Estimated: `3556`
-		// Minimum execution time: 22_344_000 picoseconds.
-		Weight::from_parts(23_868_000, 3556)
+		// Minimum execution time: 13_014_000 picoseconds.
+		Weight::from_parts(13_726_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn request_requested_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_542_000 picoseconds.
-		Weight::from_parts(11_571_000, 3556)
+		// Minimum execution time: 9_785_000 picoseconds.
+		Weight::from_parts(10_266_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::PreimageFor` (r:0 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `MaxEncodedLen`)
 	fn unrequest_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `144`
+		//  Measured:  `211`
 		//  Estimated: `3556`
-		// Minimum execution time: 29_054_000 picoseconds.
-		Weight::from_parts(32_996_000, 3556)
+		// Minimum execution time: 18_764_000 picoseconds.
+		Weight::from_parts(19_635_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_unnoted_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_775_000 picoseconds.
-		Weight::from_parts(11_937_000, 3556)
+		// Minimum execution time: 9_624_000 picoseconds.
+		Weight::from_parts(10_044_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Preimage::StatusFor` (r:1 w:0)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn unrequest_multi_referenced_preimage() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `106`
+		//  Measured:  `173`
 		//  Estimated: `3556`
-		// Minimum execution time: 10_696_000 picoseconds.
-		Weight::from_parts(11_717_000, 3556)
+		// Minimum execution time: 9_432_000 picoseconds.
+		Weight::from_parts(9_991_000, 3556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: `Preimage::StatusFor` (r:1024 w:1024)
+	/// Storage: `Preimage::StatusFor` (r:1023 w:1023)
 	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
-	/// Storage: `System::Account` (r:1 w:1)
+	/// Storage: `System::Account` (r:1023 w:1023)
 	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
-	/// Storage: `Preimage::RequestStatusFor` (r:0 w:1024)
-	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(75), added: 2550, mode: `MaxEncodedLen`)
-	/// The range of component `n` is `[0, 1024]`.
+	/// Storage: `Parameters::Parameters` (r:2 w:0)
+	/// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1023 w:1023)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:0 w:1023)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// The range of component `n` is `[1, 1024]`.
 	fn ensure_updated(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `193 + n * (91 ±0)`
-		//  Estimated: `3593 + n * (2566 ±0)`
-		// Minimum execution time: 2_452_000 picoseconds.
-		Weight::from_parts(2_641_000, 3593)
-			// Standard Error: 19_797
-			.saturating_add(Weight::from_parts(15_620_946, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
-			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
-			.saturating_add(RocksDbWeight::get().writes(1_u64))
-			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(n.into())))
-			.saturating_add(Weight::from_parts(0, 2566).saturating_mul(n.into()))
+		//  Measured:  `0 + n * (227 ±0)`
+		//  Estimated: `6012 + n * (2668 ±0)`
+		// Minimum execution time: 54_056_000 picoseconds.
+		Weight::from_parts(54_912_000, 6012)
+			// Standard Error: 42_469
+			.saturating_add(Weight::from_parts(50_710_258, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(n.into())))
+			.saturating_add(RocksDbWeight::get().writes((4_u64).saturating_mul(n.into())))
+			.saturating_add(Weight::from_parts(0, 2668).saturating_mul(n.into()))
 	}
 }
diff --git a/substrate/frame/proxy/src/weights.rs b/substrate/frame/proxy/src/weights.rs
index f30fe73d27a..3c37c91d500 100644
--- a/substrate/frame/proxy/src/weights.rs
+++ b/substrate/frame/proxy/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_proxy
+//! Autogenerated weights for `pallet_proxy`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/proxy/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/proxy/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_proxy.
+/// Weight functions needed for `pallet_proxy`.
 pub trait WeightInfo {
 	fn proxy(p: u32, ) -> Weight;
 	fn proxy_announced(a: u32, p: u32, ) -> Weight;
@@ -64,336 +63,352 @@ pub trait WeightInfo {
 	fn kill_pure(p: u32, ) -> Weight;
 }
 
-/// Weights for pallet_proxy using the Substrate node and recommended hardware.
+/// Weights for `pallet_proxy` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161 + p * (37 ±0)`
+		//  Measured:  `306 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 15_182_000 picoseconds.
-		Weight::from_parts(15_919_146, 4706)
-			// Standard Error: 1_586
-			.saturating_add(Weight::from_parts(31_768, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(1_u64))
+		// Minimum execution time: 18_437_000 picoseconds.
+		Weight::from_parts(19_610_577, 4706)
+			// Standard Error: 2_531
+			.saturating_add(Weight::from_parts(26_001, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy_announced(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `488 + a * (68 ±0) + p * (37 ±0)`
+		//  Measured:  `633 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 40_256_000 picoseconds.
-		Weight::from_parts(40_373_648, 5698)
-			// Standard Error: 3_978
-			.saturating_add(Weight::from_parts(166_936, 0).saturating_mul(a.into()))
-			// Standard Error: 4_110
-			.saturating_add(Weight::from_parts(54_329, 0).saturating_mul(p.into()))
-			.saturating_add(T::DbWeight::get().reads(3_u64))
+		// Minimum execution time: 40_426_000 picoseconds.
+		Weight::from_parts(40_200_295, 5698)
+			// Standard Error: 2_922
+			.saturating_add(Weight::from_parts(161_885, 0).saturating_mul(a.into()))
+			// Standard Error: 3_019
+			.saturating_add(Weight::from_parts(69_710, 0).saturating_mul(p.into()))
+			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 25_040_000 picoseconds.
-		Weight::from_parts(25_112_188, 5698)
-			// Standard Error: 2_143
-			.saturating_add(Weight::from_parts(189_027, 0).saturating_mul(a.into()))
-			// Standard Error: 2_214
-			.saturating_add(Weight::from_parts(26_683, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_905_000 picoseconds.
+		Weight::from_parts(22_717_430, 5698)
+			// Standard Error: 2_004
+			.saturating_add(Weight::from_parts(153_390, 0).saturating_mul(a.into()))
+			// Standard Error: 2_071
+			.saturating_add(Weight::from_parts(5_676, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn reject_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 24_884_000 picoseconds.
-		Weight::from_parts(25_359_291, 5698)
-			// Standard Error: 2_019
-			.saturating_add(Weight::from_parts(181_470, 0).saturating_mul(a.into()))
-			// Standard Error: 2_086
-			.saturating_add(Weight::from_parts(17_725, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_974_000 picoseconds.
+		Weight::from_parts(22_484_324, 5698)
+			// Standard Error: 1_846
+			.saturating_add(Weight::from_parts(153_904, 0).saturating_mul(a.into()))
+			// Standard Error: 1_907
+			.saturating_add(Weight::from_parts(9_616, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn announce(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `420 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 35_039_000 picoseconds.
-		Weight::from_parts(36_727_868, 5698)
-			// Standard Error: 4_463
-			.saturating_add(Weight::from_parts(167_060, 0).saturating_mul(a.into()))
-			// Standard Error: 4_611
-			.saturating_add(Weight::from_parts(59_836, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_454_000 picoseconds.
+		Weight::from_parts(32_128_158, 5698)
+			// Standard Error: 3_778
+			.saturating_add(Weight::from_parts(137_366, 0).saturating_mul(a.into()))
+			// Standard Error: 3_904
+			.saturating_add(Weight::from_parts(53_040, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn add_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_697_000 picoseconds.
-		Weight::from_parts(26_611_090, 4706)
-			// Standard Error: 2_306
-			.saturating_add(Weight::from_parts(85_165, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_391_000 picoseconds.
+		Weight::from_parts(22_202_614, 4706)
+			// Standard Error: 1_750
+			.saturating_add(Weight::from_parts(49_639, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_638_000 picoseconds.
-		Weight::from_parts(26_904_510, 4706)
-			// Standard Error: 2_669
-			.saturating_add(Weight::from_parts(61_668, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_375_000 picoseconds.
+		Weight::from_parts(22_392_601, 4706)
+			// Standard Error: 2_415
+			.saturating_add(Weight::from_parts(40_345, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxies(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 22_737_000 picoseconds.
-		Weight::from_parts(23_618_441, 4706)
-			// Standard Error: 1_729
-			.saturating_add(Weight::from_parts(44_009, 0).saturating_mul(p.into()))
+		// Minimum execution time: 19_833_000 picoseconds.
+		Weight::from_parts(20_839_747, 4706)
+			// Standard Error: 1_742
+			.saturating_add(Weight::from_parts(40_874, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn create_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `173`
 		//  Estimated: `4706`
-		// Minimum execution time: 27_364_000 picoseconds.
-		Weight::from_parts(28_632_271, 4706)
-			// Standard Error: 1_613
-			.saturating_add(Weight::from_parts(2_453, 0).saturating_mul(p.into()))
+		// Minimum execution time: 22_231_000 picoseconds.
+		Weight::from_parts(23_370_995, 4706)
+			// Standard Error: 1_521
+			.saturating_add(Weight::from_parts(4_892, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 30]`.
 	fn kill_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `198 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 23_552_000 picoseconds.
-		Weight::from_parts(24_874_553, 4706)
-			// Standard Error: 1_919
-			.saturating_add(Weight::from_parts(38_799, 0).saturating_mul(p.into()))
+		// Minimum execution time: 20_614_000 picoseconds.
+		Weight::from_parts(21_845_970, 4706)
+			// Standard Error: 1_636
+			.saturating_add(Weight::from_parts(34_480, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161 + p * (37 ±0)`
+		//  Measured:  `306 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 15_182_000 picoseconds.
-		Weight::from_parts(15_919_146, 4706)
-			// Standard Error: 1_586
-			.saturating_add(Weight::from_parts(31_768, 0).saturating_mul(p.into()))
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
+		// Minimum execution time: 18_437_000 picoseconds.
+		Weight::from_parts(19_610_577, 4706)
+			// Standard Error: 2_531
+			.saturating_add(Weight::from_parts(26_001, 0).saturating_mul(p.into()))
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn proxy_announced(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `488 + a * (68 ±0) + p * (37 ±0)`
+		//  Measured:  `633 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 40_256_000 picoseconds.
-		Weight::from_parts(40_373_648, 5698)
-			// Standard Error: 3_978
-			.saturating_add(Weight::from_parts(166_936, 0).saturating_mul(a.into()))
-			// Standard Error: 4_110
-			.saturating_add(Weight::from_parts(54_329, 0).saturating_mul(p.into()))
-			.saturating_add(RocksDbWeight::get().reads(3_u64))
+		// Minimum execution time: 40_426_000 picoseconds.
+		Weight::from_parts(40_200_295, 5698)
+			// Standard Error: 2_922
+			.saturating_add(Weight::from_parts(161_885, 0).saturating_mul(a.into()))
+			// Standard Error: 3_019
+			.saturating_add(Weight::from_parts(69_710, 0).saturating_mul(p.into()))
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 25_040_000 picoseconds.
-		Weight::from_parts(25_112_188, 5698)
-			// Standard Error: 2_143
-			.saturating_add(Weight::from_parts(189_027, 0).saturating_mul(a.into()))
-			// Standard Error: 2_214
-			.saturating_add(Weight::from_parts(26_683, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_905_000 picoseconds.
+		Weight::from_parts(22_717_430, 5698)
+			// Standard Error: 2_004
+			.saturating_add(Weight::from_parts(153_390, 0).saturating_mul(a.into()))
+			// Standard Error: 2_071
+			.saturating_add(Weight::from_parts(5_676, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn reject_announcement(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `403 + a * (68 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 24_884_000 picoseconds.
-		Weight::from_parts(25_359_291, 5698)
-			// Standard Error: 2_019
-			.saturating_add(Weight::from_parts(181_470, 0).saturating_mul(a.into()))
-			// Standard Error: 2_086
-			.saturating_add(Weight::from_parts(17_725, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_974_000 picoseconds.
+		Weight::from_parts(22_484_324, 5698)
+			// Standard Error: 1_846
+			.saturating_add(Weight::from_parts(153_904, 0).saturating_mul(a.into()))
+			// Standard Error: 1_907
+			.saturating_add(Weight::from_parts(9_616, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:0)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
-	/// Storage: Proxy Announcements (r:1 w:1)
-	/// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:0)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
+	/// Storage: `Proxy::Announcements` (r:1 w:1)
+	/// Proof: `Proxy::Announcements` (`max_values`: None, `max_size`: Some(2233), added: 4708, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `a` is `[0, 31]`.
 	/// The range of component `p` is `[1, 31]`.
 	fn announce(a: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `420 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5698`
-		// Minimum execution time: 35_039_000 picoseconds.
-		Weight::from_parts(36_727_868, 5698)
-			// Standard Error: 4_463
-			.saturating_add(Weight::from_parts(167_060, 0).saturating_mul(a.into()))
-			// Standard Error: 4_611
-			.saturating_add(Weight::from_parts(59_836, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_454_000 picoseconds.
+		Weight::from_parts(32_128_158, 5698)
+			// Standard Error: 3_778
+			.saturating_add(Weight::from_parts(137_366, 0).saturating_mul(a.into()))
+			// Standard Error: 3_904
+			.saturating_add(Weight::from_parts(53_040, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn add_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_697_000 picoseconds.
-		Weight::from_parts(26_611_090, 4706)
-			// Standard Error: 2_306
-			.saturating_add(Weight::from_parts(85_165, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_391_000 picoseconds.
+		Weight::from_parts(22_202_614, 4706)
+			// Standard Error: 1_750
+			.saturating_add(Weight::from_parts(49_639, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxy(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 25_638_000 picoseconds.
-		Weight::from_parts(26_904_510, 4706)
-			// Standard Error: 2_669
-			.saturating_add(Weight::from_parts(61_668, 0).saturating_mul(p.into()))
+		// Minimum execution time: 21_375_000 picoseconds.
+		Weight::from_parts(22_392_601, 4706)
+			// Standard Error: 2_415
+			.saturating_add(Weight::from_parts(40_345, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn remove_proxies(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 22_737_000 picoseconds.
-		Weight::from_parts(23_618_441, 4706)
-			// Standard Error: 1_729
-			.saturating_add(Weight::from_parts(44_009, 0).saturating_mul(p.into()))
+		// Minimum execution time: 19_833_000 picoseconds.
+		Weight::from_parts(20_839_747, 4706)
+			// Standard Error: 1_742
+			.saturating_add(Weight::from_parts(40_874, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[1, 31]`.
 	fn create_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `173`
 		//  Estimated: `4706`
-		// Minimum execution time: 27_364_000 picoseconds.
-		Weight::from_parts(28_632_271, 4706)
-			// Standard Error: 1_613
-			.saturating_add(Weight::from_parts(2_453, 0).saturating_mul(p.into()))
+		// Minimum execution time: 22_231_000 picoseconds.
+		Weight::from_parts(23_370_995, 4706)
+			// Standard Error: 1_521
+			.saturating_add(Weight::from_parts(4_892, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Proxy Proxies (r:1 w:1)
-	/// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen)
+	/// Storage: `Proxy::Proxies` (r:1 w:1)
+	/// Proof: `Proxy::Proxies` (`max_values`: None, `max_size`: Some(1241), added: 3716, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 30]`.
 	fn kill_pure(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `198 + p * (37 ±0)`
 		//  Estimated: `4706`
-		// Minimum execution time: 23_552_000 picoseconds.
-		Weight::from_parts(24_874_553, 4706)
-			// Standard Error: 1_919
-			.saturating_add(Weight::from_parts(38_799, 0).saturating_mul(p.into()))
+		// Minimum execution time: 20_614_000 picoseconds.
+		Weight::from_parts(21_845_970, 4706)
+			// Standard Error: 1_636
+			.saturating_add(Weight::from_parts(34_480, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/ranked-collective/src/weights.rs b/substrate/frame/ranked-collective/src/weights.rs
index 4ff0c3337d5..5721858f7e2 100644
--- a/substrate/frame/ranked-collective/src/weights.rs
+++ b/substrate/frame/ranked-collective/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_ranked_collective
+//! Autogenerated weights for `pallet_ranked_collective`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/ranked-collective/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/ranked-collective/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_ranked_collective.
+/// Weight functions needed for `pallet_ranked_collective`.
 pub trait WeightInfo {
 	fn add_member() -> Weight;
 	fn remove_member(r: u32, ) -> Weight;
@@ -61,283 +60,295 @@ pub trait WeightInfo {
 	fn exchange_member() -> Weight;
 }
 
-/// Weights for pallet_ranked_collective using the Substrate node and recommended hardware.
+/// Weights for `pallet_ranked_collective` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn add_member() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3507`
-		// Minimum execution time: 17_245_000 picoseconds.
-		Weight::from_parts(17_930_000, 3507)
+		// Minimum execution time: 15_389_000 picoseconds.
+		Weight::from_parts(15_901_000, 3507)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:11 w:11)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:11 w:11)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:11 w:11)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:11 w:11)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:11 w:22)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:11 w:22)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn remove_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `616 + r * (281 ±0)`
 		//  Estimated: `3519 + r * (2529 ±0)`
-		// Minimum execution time: 29_534_000 picoseconds.
-		Weight::from_parts(32_847_495, 3519)
-			// Standard Error: 24_211
-			.saturating_add(Weight::from_parts(13_949_639, 0).saturating_mul(r.into()))
+		// Minimum execution time: 29_541_000 picoseconds.
+		Weight::from_parts(32_239_358, 3519)
+			// Standard Error: 23_406
+			.saturating_add(Weight::from_parts(16_030_191, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(r.into())))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
+			.saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into()))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn promote_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `314 + r * (17 ±0)`
 		//  Estimated: `3507`
-		// Minimum execution time: 20_333_000 picoseconds.
-		Weight::from_parts(21_592_224, 3507)
-			// Standard Error: 6_423
-			.saturating_add(Weight::from_parts(321_314, 0).saturating_mul(r.into()))
+		// Minimum execution time: 17_939_000 picoseconds.
+		Weight::from_parts(19_290_416, 3507)
+			// Standard Error: 5_710
+			.saturating_add(Weight::from_parts(374_399, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:1 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:2)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:1 w:2)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn demote_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `632 + r * (72 ±0)`
 		//  Estimated: `3519`
-		// Minimum execution time: 29_446_000 picoseconds.
-		Weight::from_parts(32_447_715, 3519)
-			// Standard Error: 28_791
-			.saturating_add(Weight::from_parts(822_890, 0).saturating_mul(r.into()))
+		// Minimum execution time: 29_609_000 picoseconds.
+		Weight::from_parts(32_686_167, 3519)
+			// Standard Error: 27_588
+			.saturating_add(Weight::from_parts(789_212, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedPolls ReferendumInfoFor (r:1 w:1)
-	/// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Voting (r:1 w:1)
-	/// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Voting` (r:1 w:1)
+	/// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `628`
 		//  Estimated: `219984`
-		// Minimum execution time: 45_474_000 picoseconds.
-		Weight::from_parts(47_228_000, 219984)
+		// Minimum execution time: 41_151_000 picoseconds.
+		Weight::from_parts(42_435_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: RankedPolls ReferendumInfoFor (r:1 w:0)
-	/// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen)
-	/// Storage: RankedCollective VotingCleanup (r:1 w:0)
-	/// Proof: RankedCollective VotingCleanup (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Voting (r:100 w:100)
-	/// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::VotingCleanup` (r:1 w:0)
+	/// Proof: `RankedCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Voting` (r:100 w:100)
+	/// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	fn cleanup_poll(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462 + n * (50 ±0)`
 		//  Estimated: `3795 + n * (2540 ±0)`
-		// Minimum execution time: 13_903_000 picoseconds.
-		Weight::from_parts(18_209_102, 3795)
-			// Standard Error: 2_556
-			.saturating_add(Weight::from_parts(1_237_454, 0).saturating_mul(n.into()))
+		// Minimum execution time: 13_563_000 picoseconds.
+		Weight::from_parts(17_495_215, 3795)
+			// Standard Error: 2_294
+			.saturating_add(Weight::from_parts(1_207_393, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into()))
 	}
-
 	/// Storage: `RankedCollective::Members` (r:2 w:2)
 	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	/// Storage: `RankedCollective::MemberCount` (r:2 w:2)
 	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `RankedCollective::IdToIndex` (r:2 w:2)
+	/// Storage: `RankedCollective::IdToIndex` (r:2 w:4)
 	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:2 w:2)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:0)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:2 w:2)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	/// Storage: `RankedCollective::IndexToId` (r:0 w:2)
 	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn exchange_member() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `437`
-		//  Estimated: `6048`
-		// Minimum execution time: 138_000_000 picoseconds.
-		Weight::from_parts(141_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 6048))
-			.saturating_add(T::DbWeight::get().reads(6))
-			.saturating_add(T::DbWeight::get().writes(8))
+		//  Measured:  `625`
+		//  Estimated: `19894`
+		// Minimum execution time: 70_713_000 picoseconds.
+		Weight::from_parts(72_831_000, 19894)
+			.saturating_add(T::DbWeight::get().reads(11_u64))
+			.saturating_add(T::DbWeight::get().writes(14_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn add_member() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `3507`
-		// Minimum execution time: 17_245_000 picoseconds.
-		Weight::from_parts(17_930_000, 3507)
+		// Minimum execution time: 15_389_000 picoseconds.
+		Weight::from_parts(15_901_000, 3507)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:11 w:11)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:11 w:11)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:11 w:11)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:11 w:11)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:11 w:22)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:11 w:22)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn remove_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `616 + r * (281 ±0)`
 		//  Estimated: `3519 + r * (2529 ±0)`
-		// Minimum execution time: 29_534_000 picoseconds.
-		Weight::from_parts(32_847_495, 3519)
-			// Standard Error: 24_211
-			.saturating_add(Weight::from_parts(13_949_639, 0).saturating_mul(r.into()))
+		// Minimum execution time: 29_541_000 picoseconds.
+		Weight::from_parts(32_239_358, 3519)
+			// Standard Error: 23_406
+			.saturating_add(Weight::from_parts(16_030_191, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(r.into())))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
-			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into())))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
+			.saturating_add(RocksDbWeight::get().writes((5_u64).saturating_mul(r.into())))
 			.saturating_add(Weight::from_parts(0, 2529).saturating_mul(r.into()))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:0 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:0 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:0 w:1)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:0 w:1)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn promote_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `314 + r * (17 ±0)`
 		//  Estimated: `3507`
-		// Minimum execution time: 20_333_000 picoseconds.
-		Weight::from_parts(21_592_224, 3507)
-			// Standard Error: 6_423
-			.saturating_add(Weight::from_parts(321_314, 0).saturating_mul(r.into()))
+		// Minimum execution time: 17_939_000 picoseconds.
+		Weight::from_parts(19_290_416, 3507)
+			// Standard Error: 5_710
+			.saturating_add(Weight::from_parts(374_399, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:1)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedCollective MemberCount (r:1 w:1)
-	/// Proof: RankedCollective MemberCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IdToIndex (r:1 w:1)
-	/// Proof: RankedCollective IdToIndex (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
-	/// Storage: RankedCollective IndexToId (r:1 w:1)
-	/// Proof: RankedCollective IndexToId (max_values: None, max_size: Some(54), added: 2529, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:1)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::MemberCount` (r:1 w:1)
+	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IdToIndex` (r:1 w:2)
+	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::IndexToId` (r:1 w:2)
+	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	/// The range of component `r` is `[0, 10]`.
 	fn demote_member(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `632 + r * (72 ±0)`
 		//  Estimated: `3519`
-		// Minimum execution time: 29_446_000 picoseconds.
-		Weight::from_parts(32_447_715, 3519)
-			// Standard Error: 28_791
-			.saturating_add(Weight::from_parts(822_890, 0).saturating_mul(r.into()))
+		// Minimum execution time: 29_609_000 picoseconds.
+		Weight::from_parts(32_686_167, 3519)
+			// Standard Error: 27_588
+			.saturating_add(Weight::from_parts(789_212, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: RankedPolls ReferendumInfoFor (r:1 w:1)
-	/// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Voting (r:1 w:1)
-	/// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Voting` (r:1 w:1)
+	/// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn vote() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `628`
 		//  Estimated: `219984`
-		// Minimum execution time: 45_474_000 picoseconds.
-		Weight::from_parts(47_228_000, 219984)
+		// Minimum execution time: 41_151_000 picoseconds.
+		Weight::from_parts(42_435_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: RankedPolls ReferendumInfoFor (r:1 w:0)
-	/// Proof: RankedPolls ReferendumInfoFor (max_values: None, max_size: Some(330), added: 2805, mode: MaxEncodedLen)
-	/// Storage: RankedCollective VotingCleanup (r:1 w:0)
-	/// Proof: RankedCollective VotingCleanup (max_values: None, max_size: Some(114), added: 2589, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Voting (r:100 w:100)
-	/// Proof: RankedCollective Voting (max_values: None, max_size: Some(65), added: 2540, mode: MaxEncodedLen)
+	/// Storage: `RankedPolls::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `RankedPolls::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(330), added: 2805, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::VotingCleanup` (r:1 w:0)
+	/// Proof: `RankedCollective::VotingCleanup` (`max_values`: None, `max_size`: Some(114), added: 2589, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Voting` (r:100 w:100)
+	/// Proof: `RankedCollective::Voting` (`max_values`: None, `max_size`: Some(65), added: 2540, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[0, 100]`.
 	fn cleanup_poll(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462 + n * (50 ±0)`
 		//  Estimated: `3795 + n * (2540 ±0)`
-		// Minimum execution time: 13_903_000 picoseconds.
-		Weight::from_parts(18_209_102, 3795)
-			// Standard Error: 2_556
-			.saturating_add(Weight::from_parts(1_237_454, 0).saturating_mul(n.into()))
+		// Minimum execution time: 13_563_000 picoseconds.
+		Weight::from_parts(17_495_215, 3795)
+			// Standard Error: 2_294
+			.saturating_add(Weight::from_parts(1_207_393, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into())))
 			.saturating_add(Weight::from_parts(0, 2540).saturating_mul(n.into()))
 	}
-
 	/// Storage: `RankedCollective::Members` (r:2 w:2)
 	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	/// Storage: `RankedCollective::MemberCount` (r:2 w:2)
 	/// Proof: `RankedCollective::MemberCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
-	/// Storage: `RankedCollective::IdToIndex` (r:2 w:2)
+	/// Storage: `RankedCollective::IdToIndex` (r:2 w:4)
 	/// Proof: `RankedCollective::IdToIndex` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::Member` (r:2 w:2)
+	/// Proof: `CoreFellowship::Member` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`)
+	/// Storage: `CoreFellowship::MemberEvidence` (r:1 w:0)
+	/// Proof: `CoreFellowship::MemberEvidence` (`max_values`: None, `max_size`: Some(16429), added: 18904, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:2 w:2)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	/// Storage: `RankedCollective::IndexToId` (r:0 w:2)
 	/// Proof: `RankedCollective::IndexToId` (`max_values`: None, `max_size`: Some(54), added: 2529, mode: `MaxEncodedLen`)
 	fn exchange_member() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `437`
-		//  Estimated: `6048`
-		// Minimum execution time: 138_000_000 picoseconds.
-		Weight::from_parts(141_000_000, 0)
-			.saturating_add(Weight::from_parts(0, 6048))
-			.saturating_add(RocksDbWeight::get().reads(6))
-			.saturating_add(RocksDbWeight::get().writes(8))
+		//  Measured:  `625`
+		//  Estimated: `19894`
+		// Minimum execution time: 70_713_000 picoseconds.
+		Weight::from_parts(72_831_000, 19894)
+			.saturating_add(RocksDbWeight::get().reads(11_u64))
+			.saturating_add(RocksDbWeight::get().writes(14_u64))
 	}
 }
diff --git a/substrate/frame/recovery/src/weights.rs b/substrate/frame/recovery/src/weights.rs
index 84b19ae694e..fe5dbcfc222 100644
--- a/substrate/frame/recovery/src/weights.rs
+++ b/substrate/frame/recovery/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_recovery
+//! Autogenerated weights for `pallet_recovery`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/recovery/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/recovery/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_recovery.
+/// Weight functions needed for `pallet_recovery`.
 pub trait WeightInfo {
 	fn as_recovered() -> Weight;
 	fn set_recovered() -> Weight;
@@ -63,258 +62,266 @@ pub trait WeightInfo {
 	fn cancel_recovered() -> Weight;
 }
 
-/// Weights for pallet_recovery using the Substrate node and recommended hardware.
+/// Weights for `pallet_recovery` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Recovery Proxy (r:1 w:0)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:1 w:0)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	fn as_recovered() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `281`
-		//  Estimated: `3545`
-		// Minimum execution time: 9_360_000 picoseconds.
-		Weight::from_parts(9_773_000, 3545)
-			.saturating_add(T::DbWeight::get().reads(1_u64))
+		//  Measured:  `497`
+		//  Estimated: `3997`
+		// Minimum execution time: 14_898_000 picoseconds.
+		Weight::from_parts(15_464_000, 3997)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 	}
-	/// Storage: Recovery Proxy (r:0 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:0 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	fn set_recovered() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_146_000 picoseconds.
-		Weight::from_parts(9_507_000, 0)
+		// Minimum execution time: 7_424_000 picoseconds.
+		Weight::from_parts(7_830_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:1)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn create_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `175`
+		//  Measured:  `246`
 		//  Estimated: `3816`
-		// Minimum execution time: 26_472_000 picoseconds.
-		Weight::from_parts(27_917_651, 3816)
-			// Standard Error: 7_129
-			.saturating_add(Weight::from_parts(59_239, 0).saturating_mul(n.into()))
+		// Minimum execution time: 21_968_000 picoseconds.
+		Weight::from_parts(23_594_232, 3816)
+			// Standard Error: 5_848
+			.saturating_add(Weight::from_parts(24_843, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
 	fn initiate_recovery() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `272`
+		//  Measured:  `343`
 		//  Estimated: `3854`
-		// Minimum execution time: 29_618_000 picoseconds.
-		Weight::from_parts(30_192_000, 3854)
+		// Minimum execution time: 25_494_000 picoseconds.
+		Weight::from_parts(26_290_000, 3854)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn vouch_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360 + n * (64 ±0)`
+		//  Measured:  `431 + n * (64 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 19_464_000 picoseconds.
-		Weight::from_parts(20_642_522, 3854)
-			// Standard Error: 5_974
-			.saturating_add(Weight::from_parts(142_308, 0).saturating_mul(n.into()))
+		// Minimum execution time: 17_044_000 picoseconds.
+		Weight::from_parts(18_299_617, 3854)
+			// Standard Error: 5_580
+			.saturating_add(Weight::from_parts(187_568, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:0)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: Recovery Proxy (r:1 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn claim_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `392 + n * (64 ±0)`
+		//  Measured:  `463 + n * (64 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 23_656_000 picoseconds.
-		Weight::from_parts(24_903_269, 3854)
-			// Standard Error: 5_771
-			.saturating_add(Weight::from_parts(117_343, 0).saturating_mul(n.into()))
+		// Minimum execution time: 22_186_000 picoseconds.
+		Weight::from_parts(23_476_807, 3854)
+			// Standard Error: 6_392
+			.saturating_add(Weight::from_parts(89_770, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn close_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `513 + n * (32 ±0)`
+		//  Measured:  `584 + n * (32 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 34_866_000 picoseconds.
-		Weight::from_parts(36_368_748, 3854)
-			// Standard Error: 6_600
-			.saturating_add(Weight::from_parts(118_610, 0).saturating_mul(n.into()))
+		// Minimum execution time: 31_045_000 picoseconds.
+		Weight::from_parts(32_623_578, 3854)
+			// Standard Error: 7_203
+			.saturating_add(Weight::from_parts(61_466, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Recovery ActiveRecoveries (r:1 w:0)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: Recovery Recoverable (r:1 w:1)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn remove_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `270 + n * (32 ±0)`
+		//  Measured:  `341 + n * (32 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 31_405_000 picoseconds.
-		Weight::from_parts(32_552_838, 3854)
-			// Standard Error: 8_043
-			.saturating_add(Weight::from_parts(171_605, 0).saturating_mul(n.into()))
+		// Minimum execution time: 27_925_000 picoseconds.
+		Weight::from_parts(29_258_264, 3854)
+			// Standard Error: 8_192
+			.saturating_add(Weight::from_parts(128_124, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Proxy (r:1 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	fn cancel_recovered() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `281`
+		//  Measured:  `352`
 		//  Estimated: `3545`
-		// Minimum execution time: 11_530_000 picoseconds.
-		Weight::from_parts(11_851_000, 3545)
+		// Minimum execution time: 11_623_000 picoseconds.
+		Weight::from_parts(12_043_000, 3545)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Recovery Proxy (r:1 w:0)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:1 w:0)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	fn as_recovered() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `281`
-		//  Estimated: `3545`
-		// Minimum execution time: 9_360_000 picoseconds.
-		Weight::from_parts(9_773_000, 3545)
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
+		//  Measured:  `497`
+		//  Estimated: `3997`
+		// Minimum execution time: 14_898_000 picoseconds.
+		Weight::from_parts(15_464_000, 3997)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 	}
-	/// Storage: Recovery Proxy (r:0 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:0 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	fn set_recovered() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_146_000 picoseconds.
-		Weight::from_parts(9_507_000, 0)
+		// Minimum execution time: 7_424_000 picoseconds.
+		Weight::from_parts(7_830_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:1)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn create_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `175`
+		//  Measured:  `246`
 		//  Estimated: `3816`
-		// Minimum execution time: 26_472_000 picoseconds.
-		Weight::from_parts(27_917_651, 3816)
-			// Standard Error: 7_129
-			.saturating_add(Weight::from_parts(59_239, 0).saturating_mul(n.into()))
+		// Minimum execution time: 21_968_000 picoseconds.
+		Weight::from_parts(23_594_232, 3816)
+			// Standard Error: 5_848
+			.saturating_add(Weight::from_parts(24_843, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
 	fn initiate_recovery() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `272`
+		//  Measured:  `343`
 		//  Estimated: `3854`
-		// Minimum execution time: 29_618_000 picoseconds.
-		Weight::from_parts(30_192_000, 3854)
+		// Minimum execution time: 25_494_000 picoseconds.
+		Weight::from_parts(26_290_000, 3854)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn vouch_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `360 + n * (64 ±0)`
+		//  Measured:  `431 + n * (64 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 19_464_000 picoseconds.
-		Weight::from_parts(20_642_522, 3854)
-			// Standard Error: 5_974
-			.saturating_add(Weight::from_parts(142_308, 0).saturating_mul(n.into()))
+		// Minimum execution time: 17_044_000 picoseconds.
+		Weight::from_parts(18_299_617, 3854)
+			// Standard Error: 5_580
+			.saturating_add(Weight::from_parts(187_568, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Recoverable (r:1 w:0)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
-	/// Storage: Recovery ActiveRecoveries (r:1 w:0)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: Recovery Proxy (r:1 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Recoverable` (r:1 w:0)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn claim_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `392 + n * (64 ±0)`
+		//  Measured:  `463 + n * (64 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 23_656_000 picoseconds.
-		Weight::from_parts(24_903_269, 3854)
-			// Standard Error: 5_771
-			.saturating_add(Weight::from_parts(117_343, 0).saturating_mul(n.into()))
+		// Minimum execution time: 22_186_000 picoseconds.
+		Weight::from_parts(23_476_807, 3854)
+			// Standard Error: 6_392
+			.saturating_add(Weight::from_parts(89_770, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery ActiveRecoveries (r:1 w:1)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:1)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn close_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `513 + n * (32 ±0)`
+		//  Measured:  `584 + n * (32 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 34_866_000 picoseconds.
-		Weight::from_parts(36_368_748, 3854)
-			// Standard Error: 6_600
-			.saturating_add(Weight::from_parts(118_610, 0).saturating_mul(n.into()))
+		// Minimum execution time: 31_045_000 picoseconds.
+		Weight::from_parts(32_623_578, 3854)
+			// Standard Error: 7_203
+			.saturating_add(Weight::from_parts(61_466, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Recovery ActiveRecoveries (r:1 w:0)
-	/// Proof: Recovery ActiveRecoveries (max_values: None, max_size: Some(389), added: 2864, mode: MaxEncodedLen)
-	/// Storage: Recovery Recoverable (r:1 w:1)
-	/// Proof: Recovery Recoverable (max_values: None, max_size: Some(351), added: 2826, mode: MaxEncodedLen)
+	/// Storage: `Recovery::ActiveRecoveries` (r:1 w:0)
+	/// Proof: `Recovery::ActiveRecoveries` (`max_values`: None, `max_size`: Some(389), added: 2864, mode: `MaxEncodedLen`)
+	/// Storage: `Recovery::Recoverable` (r:1 w:1)
+	/// Proof: `Recovery::Recoverable` (`max_values`: None, `max_size`: Some(351), added: 2826, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 9]`.
 	fn remove_recovery(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `270 + n * (32 ±0)`
+		//  Measured:  `341 + n * (32 ±0)`
 		//  Estimated: `3854`
-		// Minimum execution time: 31_405_000 picoseconds.
-		Weight::from_parts(32_552_838, 3854)
-			// Standard Error: 8_043
-			.saturating_add(Weight::from_parts(171_605, 0).saturating_mul(n.into()))
+		// Minimum execution time: 27_925_000 picoseconds.
+		Weight::from_parts(29_258_264, 3854)
+			// Standard Error: 8_192
+			.saturating_add(Weight::from_parts(128_124, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Recovery Proxy (r:1 w:1)
-	/// Proof: Recovery Proxy (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen)
+	/// Storage: `Recovery::Proxy` (r:1 w:1)
+	/// Proof: `Recovery::Proxy` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`)
 	fn cancel_recovered() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `281`
+		//  Measured:  `352`
 		//  Estimated: `3545`
-		// Minimum execution time: 11_530_000 picoseconds.
-		Weight::from_parts(11_851_000, 3545)
+		// Minimum execution time: 11_623_000 picoseconds.
+		Weight::from_parts(12_043_000, 3545)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/referenda/src/weights.rs b/substrate/frame/referenda/src/weights.rs
index 4b89379b311..1f1b69873eb 100644
--- a/substrate/frame/referenda/src/weights.rs
+++ b/substrate/frame/referenda/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_referenda
+//! Autogenerated weights for `pallet_referenda`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/referenda/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/referenda/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_referenda.
+/// Weight functions needed for `pallet_referenda`.
 pub trait WeightInfo {
 	fn submit() -> Weight;
 	fn place_decision_deposit_preparing() -> Weight;
@@ -84,842 +83,874 @@ pub trait WeightInfo {
 	fn clear_metadata() -> Weight;
 }
 
-/// Weights for pallet_referenda using the Substrate node and recommended hardware.
+/// Weights for `pallet_referenda` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Referenda ReferendumCount (r:1 w:1)
-	/// Proof: Referenda ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:0 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumCount` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `220`
+		//  Measured:  `286`
 		//  Estimated: `110487`
-		// Minimum execution time: 40_175_000 picoseconds.
-		Weight::from_parts(41_107_000, 110487)
+		// Minimum execution time: 31_536_000 picoseconds.
+		Weight::from_parts(32_797_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 50_922_000 picoseconds.
-		Weight::from_parts(52_179_000, 219984)
+		// Minimum execution time: 42_579_000 picoseconds.
+		Weight::from_parts(43_877_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3260`
+		//  Measured:  `3326`
 		//  Estimated: `110487`
-		// Minimum execution time: 69_559_000 picoseconds.
-		Weight::from_parts(72_143_000, 110487)
+		// Minimum execution time: 61_439_000 picoseconds.
+		Weight::from_parts(63_681_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3280`
+		//  Measured:  `3346`
 		//  Estimated: `110487`
-		// Minimum execution time: 68_833_000 picoseconds.
-		Weight::from_parts(70_987_000, 110487)
+		// Minimum execution time: 60_136_000 picoseconds.
+		Weight::from_parts(61_841_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 61_794_000 picoseconds.
-		Weight::from_parts(62_846_000, 219984)
+		// Minimum execution time: 49_865_000 picoseconds.
+		Weight::from_parts(51_347_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
-	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+			.saturating_add(T::DbWeight::get().writes(5_u64))
+	}
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 58_664_000 picoseconds.
-		Weight::from_parts(60_195_000, 219984)
+		// Minimum execution time: 47_887_000 picoseconds.
+		Weight::from_parts(49_927_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn refund_decision_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `351`
+		//  Measured:  `417`
 		//  Estimated: `3831`
-		// Minimum execution time: 30_850_000 picoseconds.
-		Weight::from_parts(32_130_000, 3831)
+		// Minimum execution time: 25_721_000 picoseconds.
+		Weight::from_parts(26_922_000, 3831)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn refund_submission_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `341`
+		//  Measured:  `407`
 		//  Estimated: `3831`
-		// Minimum execution time: 30_747_000 picoseconds.
-		Weight::from_parts(32_196_000, 3831)
+		// Minimum execution time: 25_840_000 picoseconds.
+		Weight::from_parts(26_498_000, 3831)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `219984`
-		// Minimum execution time: 36_139_000 picoseconds.
-		Weight::from_parts(37_252_000, 219984)
+		// Minimum execution time: 30_530_000 picoseconds.
+		Weight::from_parts(31_547_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:1 w:0)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:1 w:0)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn kill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `622`
+		//  Measured:  `688`
 		//  Estimated: `219984`
-		// Minimum execution time: 80_862_000 picoseconds.
-		Weight::from_parts(83_045_000, 219984)
+		// Minimum execution time: 64_011_000 picoseconds.
+		Weight::from_parts(65_240_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(3_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:0)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:0)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_queue_empty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174`
+		//  Measured:  `240`
 		//  Estimated: `5477`
-		// Minimum execution time: 10_136_000 picoseconds.
-		Weight::from_parts(10_638_000, 5477)
+		// Minimum execution time: 9_568_000 picoseconds.
+		Weight::from_parts(10_004_000, 5477)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3150`
+		//  Measured:  `3216`
 		//  Estimated: `110487`
-		// Minimum execution time: 52_022_000 picoseconds.
-		Weight::from_parts(53_910_000, 110487)
+		// Minimum execution time: 43_325_000 picoseconds.
+		Weight::from_parts(45_335_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3150`
+		//  Measured:  `3216`
 		//  Estimated: `110487`
-		// Minimum execution time: 53_683_000 picoseconds.
-		Weight::from_parts(55_707_000, 110487)
+		// Minimum execution time: 44_287_000 picoseconds.
+		Weight::from_parts(45_164_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_insertion() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3011`
+		//  Measured:  `3077`
 		//  Estimated: `5477`
-		// Minimum execution time: 24_043_000 picoseconds.
-		Weight::from_parts(24_512_000, 5477)
+		// Minimum execution time: 21_909_000 picoseconds.
+		Weight::from_parts(22_641_000, 5477)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_slide() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3011`
+		//  Measured:  `3077`
 		//  Estimated: `5477`
-		// Minimum execution time: 23_588_000 picoseconds.
-		Weight::from_parts(24_422_000, 5477)
+		// Minimum execution time: 21_626_000 picoseconds.
+		Weight::from_parts(22_338_000, 5477)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3015`
+		//  Measured:  `3081`
 		//  Estimated: `5477`
-		// Minimum execution time: 31_443_000 picoseconds.
-		Weight::from_parts(32_725_000, 5477)
+		// Minimum execution time: 29_245_000 picoseconds.
+		Weight::from_parts(30_147_000, 5477)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3035`
+		//  Measured:  `3101`
 		//  Estimated: `5477`
-		// Minimum execution time: 30_319_000 picoseconds.
-		Weight::from_parts(31_652_000, 5477)
+		// Minimum execution time: 28_512_000 picoseconds.
+		Weight::from_parts(29_781_000, 5477)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_no_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `333`
+		//  Measured:  `399`
 		//  Estimated: `110487`
-		// Minimum execution time: 23_062_000 picoseconds.
-		Weight::from_parts(23_614_000, 110487)
+		// Minimum execution time: 19_208_000 picoseconds.
+		Weight::from_parts(19_947_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 23_537_000 picoseconds.
-		Weight::from_parts(24_267_000, 110487)
+		// Minimum execution time: 19_708_000 picoseconds.
+		Weight::from_parts(20_783_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn nudge_referendum_timed_out() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `278`
+		//  Measured:  `344`
 		//  Estimated: `3831`
-		// Minimum execution time: 16_388_000 picoseconds.
-		Weight::from_parts(16_676_000, 3831)
+		// Minimum execution time: 12_947_000 picoseconds.
+		Weight::from_parts(13_582_000, 3831)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 32_801_000 picoseconds.
-		Weight::from_parts(34_053_000, 110487)
+		// Minimum execution time: 26_699_000 picoseconds.
+		Weight::from_parts(28_048_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 35_704_000 picoseconds.
-		Weight::from_parts(36_451_000, 110487)
+		// Minimum execution time: 28_132_000 picoseconds.
+		Weight::from_parts(29_520_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 29_151_000 picoseconds.
-		Weight::from_parts(30_055_000, 110487)
+		// Minimum execution time: 23_212_000 picoseconds.
+		Weight::from_parts(24_200_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_end_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
+		//  Measured:  `483`
 		//  Estimated: `110487`
-		// Minimum execution time: 29_265_000 picoseconds.
-		Weight::from_parts(30_213_000, 110487)
+		// Minimum execution time: 22_807_000 picoseconds.
+		Weight::from_parts(23_858_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_not_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 27_760_000 picoseconds.
-		Weight::from_parts(28_381_000, 110487)
+		// Minimum execution time: 22_862_000 picoseconds.
+		Weight::from_parts(23_627_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `438`
+		//  Measured:  `504`
 		//  Estimated: `110487`
-		// Minimum execution time: 25_464_000 picoseconds.
-		Weight::from_parts(26_348_000, 110487)
+		// Minimum execution time: 21_030_000 picoseconds.
+		Weight::from_parts(21_710_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Scheduler Lookup (r:1 w:1)
-	/// Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Lookup` (r:1 w:1)
+	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn nudge_referendum_approved() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `438`
+		//  Measured:  `504`
 		//  Estimated: `219984`
-		// Minimum execution time: 42_629_000 picoseconds.
-		Weight::from_parts(43_732_000, 219984)
+		// Minimum execution time: 33_031_000 picoseconds.
+		Weight::from_parts(34_518_000, 219984)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_rejected() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 30_015_000 picoseconds.
-		Weight::from_parts(30_827_000, 110487)
+		// Minimum execution time: 23_198_000 picoseconds.
+		Weight::from_parts(24_238_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:0 w:1)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:0 w:1)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_some_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `422`
+		//  Measured:  `555`
 		//  Estimated: `3831`
-		// Minimum execution time: 19_901_000 picoseconds.
-		Weight::from_parts(20_681_000, 3831)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 19_502_000 picoseconds.
+		Weight::from_parts(20_105_000, 3831)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:1 w:1)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:1 w:1)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `355`
+		//  Measured:  `421`
 		//  Estimated: `3831`
-		// Minimum execution time: 17_323_000 picoseconds.
-		Weight::from_parts(18_227_000, 3831)
+		// Minimum execution time: 15_417_000 picoseconds.
+		Weight::from_parts(15_916_000, 3831)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Referenda ReferendumCount (r:1 w:1)
-	/// Proof: Referenda ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:0 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumCount` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn submit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `220`
+		//  Measured:  `286`
 		//  Estimated: `110487`
-		// Minimum execution time: 40_175_000 picoseconds.
-		Weight::from_parts(41_107_000, 110487)
+		// Minimum execution time: 31_536_000 picoseconds.
+		Weight::from_parts(32_797_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 50_922_000 picoseconds.
-		Weight::from_parts(52_179_000, 219984)
+		// Minimum execution time: 42_579_000 picoseconds.
+		Weight::from_parts(43_877_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3260`
+		//  Measured:  `3326`
 		//  Estimated: `110487`
-		// Minimum execution time: 69_559_000 picoseconds.
-		Weight::from_parts(72_143_000, 110487)
+		// Minimum execution time: 61_439_000 picoseconds.
+		Weight::from_parts(63_681_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3280`
+		//  Measured:  `3346`
 		//  Estimated: `110487`
-		// Minimum execution time: 68_833_000 picoseconds.
-		Weight::from_parts(70_987_000, 110487)
+		// Minimum execution time: 60_136_000 picoseconds.
+		Weight::from_parts(61_841_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 61_794_000 picoseconds.
-		Weight::from_parts(62_846_000, 219984)
+		// Minimum execution time: 49_865_000 picoseconds.
+		Weight::from_parts(51_347_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
-	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
+	}
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn place_decision_deposit_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `473`
+		//  Measured:  `539`
 		//  Estimated: `219984`
-		// Minimum execution time: 58_664_000 picoseconds.
-		Weight::from_parts(60_195_000, 219984)
+		// Minimum execution time: 47_887_000 picoseconds.
+		Weight::from_parts(49_927_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn refund_decision_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `351`
+		//  Measured:  `417`
 		//  Estimated: `3831`
-		// Minimum execution time: 30_850_000 picoseconds.
-		Weight::from_parts(32_130_000, 3831)
+		// Minimum execution time: 25_721_000 picoseconds.
+		Weight::from_parts(26_922_000, 3831)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn refund_submission_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `341`
+		//  Measured:  `407`
 		//  Estimated: `3831`
-		// Minimum execution time: 30_747_000 picoseconds.
-		Weight::from_parts(32_196_000, 3831)
+		// Minimum execution time: 25_840_000 picoseconds.
+		Weight::from_parts(26_498_000, 3831)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `219984`
-		// Minimum execution time: 36_139_000 picoseconds.
-		Weight::from_parts(37_252_000, 219984)
+		// Minimum execution time: 30_530_000 picoseconds.
+		Weight::from_parts(31_547_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:1 w:0)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:1 w:0)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn kill() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `622`
+		//  Measured:  `688`
 		//  Estimated: `219984`
-		// Minimum execution time: 80_862_000 picoseconds.
-		Weight::from_parts(83_045_000, 219984)
+		// Minimum execution time: 64_011_000 picoseconds.
+		Weight::from_parts(65_240_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:0)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:0)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_queue_empty() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174`
+		//  Measured:  `240`
 		//  Estimated: `5477`
-		// Minimum execution time: 10_136_000 picoseconds.
-		Weight::from_parts(10_638_000, 5477)
+		// Minimum execution time: 9_568_000 picoseconds.
+		Weight::from_parts(10_004_000, 5477)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3150`
+		//  Measured:  `3216`
 		//  Estimated: `110487`
-		// Minimum execution time: 52_022_000 picoseconds.
-		Weight::from_parts(53_910_000, 110487)
+		// Minimum execution time: 43_325_000 picoseconds.
+		Weight::from_parts(45_335_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn one_fewer_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3150`
+		//  Measured:  `3216`
 		//  Estimated: `110487`
-		// Minimum execution time: 53_683_000 picoseconds.
-		Weight::from_parts(55_707_000, 110487)
+		// Minimum execution time: 44_287_000 picoseconds.
+		Weight::from_parts(45_164_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_insertion() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3011`
+		//  Measured:  `3077`
 		//  Estimated: `5477`
-		// Minimum execution time: 24_043_000 picoseconds.
-		Weight::from_parts(24_512_000, 5477)
+		// Minimum execution time: 21_909_000 picoseconds.
+		Weight::from_parts(22_641_000, 5477)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_requeued_slide() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3011`
+		//  Measured:  `3077`
 		//  Estimated: `5477`
-		// Minimum execution time: 23_588_000 picoseconds.
-		Weight::from_parts(24_422_000, 5477)
+		// Minimum execution time: 21_626_000 picoseconds.
+		Weight::from_parts(22_338_000, 5477)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3015`
+		//  Measured:  `3081`
 		//  Estimated: `5477`
-		// Minimum execution time: 31_443_000 picoseconds.
-		Weight::from_parts(32_725_000, 5477)
+		// Minimum execution time: 29_245_000 picoseconds.
+		Weight::from_parts(30_147_000, 5477)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:0)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Referenda TrackQueue (r:1 w:1)
-	/// Proof: Referenda TrackQueue (max_values: None, max_size: Some(2012), added: 4487, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:0)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::TrackQueue` (r:1 w:1)
+	/// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
 	fn nudge_referendum_not_queued() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `3035`
+		//  Measured:  `3101`
 		//  Estimated: `5477`
-		// Minimum execution time: 30_319_000 picoseconds.
-		Weight::from_parts(31_652_000, 5477)
+		// Minimum execution time: 28_512_000 picoseconds.
+		Weight::from_parts(29_781_000, 5477)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_no_deposit() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `333`
+		//  Measured:  `399`
 		//  Estimated: `110487`
-		// Minimum execution time: 23_062_000 picoseconds.
-		Weight::from_parts(23_614_000, 110487)
+		// Minimum execution time: 19_208_000 picoseconds.
+		Weight::from_parts(19_947_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_preparing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 23_537_000 picoseconds.
-		Weight::from_parts(24_267_000, 110487)
+		// Minimum execution time: 19_708_000 picoseconds.
+		Weight::from_parts(20_783_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
 	fn nudge_referendum_timed_out() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `278`
+		//  Measured:  `344`
 		//  Estimated: `3831`
-		// Minimum execution time: 16_388_000 picoseconds.
-		Weight::from_parts(16_676_000, 3831)
+		// Minimum execution time: 12_947_000 picoseconds.
+		Weight::from_parts(13_582_000, 3831)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_failing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 32_801_000 picoseconds.
-		Weight::from_parts(34_053_000, 110487)
+		// Minimum execution time: 26_699_000 picoseconds.
+		Weight::from_parts(28_048_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda DecidingCount (r:1 w:1)
-	/// Proof: Referenda DecidingCount (max_values: None, max_size: Some(14), added: 2489, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::DecidingCount` (r:1 w:1)
+	/// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_deciding_passing() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `381`
+		//  Measured:  `447`
 		//  Estimated: `110487`
-		// Minimum execution time: 35_704_000 picoseconds.
-		Weight::from_parts(36_451_000, 110487)
+		// Minimum execution time: 28_132_000 picoseconds.
+		Weight::from_parts(29_520_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_begin_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 29_151_000 picoseconds.
-		Weight::from_parts(30_055_000, 110487)
+		// Minimum execution time: 23_212_000 picoseconds.
+		Weight::from_parts(24_200_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_end_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `417`
+		//  Measured:  `483`
 		//  Estimated: `110487`
-		// Minimum execution time: 29_265_000 picoseconds.
-		Weight::from_parts(30_213_000, 110487)
+		// Minimum execution time: 22_807_000 picoseconds.
+		Weight::from_parts(23_858_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_not_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 27_760_000 picoseconds.
-		Weight::from_parts(28_381_000, 110487)
+		// Minimum execution time: 22_862_000 picoseconds.
+		Weight::from_parts(23_627_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_continue_confirming() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `438`
+		//  Measured:  `504`
 		//  Estimated: `110487`
-		// Minimum execution time: 25_464_000 picoseconds.
-		Weight::from_parts(26_348_000, 110487)
+		// Minimum execution time: 21_030_000 picoseconds.
+		Weight::from_parts(21_710_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:2 w:2)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
-	/// Storage: Scheduler Lookup (r:1 w:1)
-	/// Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:2 w:2)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Lookup` (r:1 w:1)
+	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	fn nudge_referendum_approved() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `438`
+		//  Measured:  `504`
 		//  Estimated: `219984`
-		// Minimum execution time: 42_629_000 picoseconds.
-		Weight::from_parts(43_732_000, 219984)
+		// Minimum execution time: 33_031_000 picoseconds.
+		Weight::from_parts(34_518_000, 219984)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:1)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Scheduler Agenda (r:1 w:1)
-	/// Proof: Scheduler Agenda (max_values: None, max_size: Some(107022), added: 109497, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Agenda` (r:1 w:1)
+	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
 	fn nudge_referendum_rejected() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `434`
+		//  Measured:  `500`
 		//  Estimated: `110487`
-		// Minimum execution time: 30_015_000 picoseconds.
-		Weight::from_parts(30_827_000, 110487)
+		// Minimum execution time: 23_198_000 picoseconds.
+		Weight::from_parts(24_238_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:0)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:0 w:1)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:0 w:1)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn set_some_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `422`
+		//  Measured:  `555`
 		//  Estimated: `3831`
-		// Minimum execution time: 19_901_000 picoseconds.
-		Weight::from_parts(20_681_000, 3831)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 19_502_000 picoseconds.
+		Weight::from_parts(20_105_000, 3831)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Referenda ReferendumInfoFor (r:1 w:0)
-	/// Proof: Referenda ReferendumInfoFor (max_values: None, max_size: Some(366), added: 2841, mode: MaxEncodedLen)
-	/// Storage: Referenda MetadataOf (r:1 w:1)
-	/// Proof: Referenda MetadataOf (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen)
+	/// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+	/// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(366), added: 2841, mode: `MaxEncodedLen`)
+	/// Storage: `Referenda::MetadataOf` (r:1 w:1)
+	/// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `355`
+		//  Measured:  `421`
 		//  Estimated: `3831`
-		// Minimum execution time: 17_323_000 picoseconds.
-		Weight::from_parts(18_227_000, 3831)
+		// Minimum execution time: 15_417_000 picoseconds.
+		Weight::from_parts(15_916_000, 3831)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/remark/src/weights.rs b/substrate/frame/remark/src/weights.rs
index 46475db163f..61cca5b7d05 100644
--- a/substrate/frame/remark/src/weights.rs
+++ b/substrate/frame/remark/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_remark
+//! Autogenerated weights for `pallet_remark`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/remark/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/remark/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,12 +49,12 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_remark.
+/// Weight functions needed for `pallet_remark`.
 pub trait WeightInfo {
 	fn store(l: u32, ) -> Weight;
 }
 
-/// Weights for pallet_remark using the Substrate node and recommended hardware.
+/// Weights for `pallet_remark` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `l` is `[1, 1048576]`.
@@ -63,23 +62,23 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_471_000 picoseconds.
-		Weight::from_parts(8_586_000, 0)
+		// Minimum execution time: 6_623_000 picoseconds.
+		Weight::from_parts(6_757_000, 0)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_359, 0).saturating_mul(l.into()))
+			.saturating_add(Weight::from_parts(1_368, 0).saturating_mul(l.into()))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
 	/// The range of component `l` is `[1, 1048576]`.
 	fn store(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_471_000 picoseconds.
-		Weight::from_parts(8_586_000, 0)
+		// Minimum execution time: 6_623_000 picoseconds.
+		Weight::from_parts(6_757_000, 0)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_359, 0).saturating_mul(l.into()))
+			.saturating_add(Weight::from_parts(1_368, 0).saturating_mul(l.into()))
 	}
 }
diff --git a/substrate/frame/safe-mode/src/weights.rs b/substrate/frame/safe-mode/src/weights.rs
index f72bebcab9a..d326fab0f0f 100644
--- a/substrate/frame/safe-mode/src/weights.rs
+++ b/substrate/frame/safe-mode/src/weights.rs
@@ -17,27 +17,29 @@
 
 //! Autogenerated weights for `pallet_safe_mode`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-08-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-aahe6cbd-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_safe_mode
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json
-// --pallet=pallet_safe_mode
-// --chain=dev
-// --header=./HEADER-APACHE2
-// --output=./frame/safe-mode/src/weights.rs
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/safe-mode/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -70,8 +72,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1489`
-		// Minimum execution time: 2_500_000 picoseconds.
-		Weight::from_parts(2_594_000, 1489)
+		// Minimum execution time: 2_216_000 picoseconds.
+		Weight::from_parts(2_309_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
@@ -80,23 +82,23 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 8_868_000 picoseconds.
-		Weight::from_parts(9_415_000, 1489)
+		// Minimum execution time: 6_124_000 picoseconds.
+		Weight::from_parts(6_601_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `SafeMode::Deposits` (r:0 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn enter() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
-		//  Estimated: `3550`
-		// Minimum execution time: 50_541_000 picoseconds.
-		Weight::from_parts(51_558_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 44_825_000 picoseconds.
+		Weight::from_parts(45_845_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -106,23 +108,23 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_489_000 picoseconds.
-		Weight::from_parts(10_833_000, 1489)
+		// Minimum execution time: 7_603_000 picoseconds.
+		Weight::from_parts(7_954_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `SafeMode::Deposits` (r:0 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn extend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
-		//  Estimated: `3550`
-		// Minimum execution time: 50_818_000 picoseconds.
-		Weight::from_parts(51_873_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 44_716_000 picoseconds.
+		Weight::from_parts(46_039_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -132,8 +134,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_843_000 picoseconds.
-		Weight::from_parts(11_314_000, 1489)
+		// Minimum execution time: 8_231_000 picoseconds.
+		Weight::from_parts(8_731_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -143,8 +145,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_382_000 picoseconds.
-		Weight::from_parts(10_814_000, 1489)
+		// Minimum execution time: 8_015_000 picoseconds.
+		Weight::from_parts(8_247_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -153,39 +155,39 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn release_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 42_828_000 picoseconds.
-		Weight::from_parts(43_752_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 39_149_000 picoseconds.
+		Weight::from_parts(40_005_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `SafeMode::Deposits` (r:1 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn force_release_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 40_196_000 picoseconds.
-		Weight::from_parts(41_298_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 37_528_000 picoseconds.
+		Weight::from_parts(38_473_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `SafeMode::Deposits` (r:1 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn force_slash_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 33_660_000 picoseconds.
-		Weight::from_parts(34_426_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 29_417_000 picoseconds.
+		Weight::from_parts(30_195_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -199,8 +201,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1489`
-		// Minimum execution time: 2_500_000 picoseconds.
-		Weight::from_parts(2_594_000, 1489)
+		// Minimum execution time: 2_216_000 picoseconds.
+		Weight::from_parts(2_309_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
@@ -209,23 +211,23 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 8_868_000 picoseconds.
-		Weight::from_parts(9_415_000, 1489)
+		// Minimum execution time: 6_124_000 picoseconds.
+		Weight::from_parts(6_601_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `SafeMode::Deposits` (r:0 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn enter() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
-		//  Estimated: `3550`
-		// Minimum execution time: 50_541_000 picoseconds.
-		Weight::from_parts(51_558_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 44_825_000 picoseconds.
+		Weight::from_parts(45_845_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -235,23 +237,23 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `142`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_489_000 picoseconds.
-		Weight::from_parts(10_833_000, 1489)
+		// Minimum execution time: 7_603_000 picoseconds.
+		Weight::from_parts(7_954_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:1)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `SafeMode::Deposits` (r:0 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn extend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
-		//  Estimated: `3550`
-		// Minimum execution time: 50_818_000 picoseconds.
-		Weight::from_parts(51_873_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 44_716_000 picoseconds.
+		Weight::from_parts(46_039_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -261,8 +263,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_843_000 picoseconds.
-		Weight::from_parts(11_314_000, 1489)
+		// Minimum execution time: 8_231_000 picoseconds.
+		Weight::from_parts(8_731_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -272,8 +274,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `169`
 		//  Estimated: `1489`
-		// Minimum execution time: 10_382_000 picoseconds.
-		Weight::from_parts(10_814_000, 1489)
+		// Minimum execution time: 8_015_000 picoseconds.
+		Weight::from_parts(8_247_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -282,39 +284,39 @@ impl WeightInfo for () {
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn release_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 42_828_000 picoseconds.
-		Weight::from_parts(43_752_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 39_149_000 picoseconds.
+		Weight::from_parts(40_005_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `SafeMode::Deposits` (r:1 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn force_release_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 40_196_000 picoseconds.
-		Weight::from_parts(41_298_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 37_528_000 picoseconds.
+		Weight::from_parts(38_473_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `SafeMode::Deposits` (r:1 w:1)
 	/// Proof: `SafeMode::Deposits` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn force_slash_deposit() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
-		//  Estimated: `3550`
-		// Minimum execution time: 33_660_000 picoseconds.
-		Weight::from_parts(34_426_000, 3550)
+		//  Estimated: `3658`
+		// Minimum execution time: 29_417_000 picoseconds.
+		Weight::from_parts(30_195_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
diff --git a/substrate/frame/salary/src/weights.rs b/substrate/frame/salary/src/weights.rs
index 3d3b9e31595..c4f22a027eb 100644
--- a/substrate/frame/salary/src/weights.rs
+++ b/substrate/frame/salary/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_salary
+//! Autogenerated weights for `pallet_salary`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/salary/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/salary/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_salary.
+/// Weight functions needed for `pallet_salary`.
 pub trait WeightInfo {
 	fn init() -> Weight;
 	fn bump() -> Weight;
@@ -61,204 +60,204 @@ pub trait WeightInfo {
 	fn check_payment() -> Weight;
 }
 
-/// Weights for pallet_salary using the Substrate node and recommended hardware.
+/// Weights for `pallet_salary` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
 	fn init() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `4`
 		//  Estimated: `1541`
-		// Minimum execution time: 10_778_000 picoseconds.
-		Weight::from_parts(11_084_000, 1541)
+		// Minimum execution time: 7_421_000 picoseconds.
+		Weight::from_parts(7_819_000, 1541)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
 	fn bump() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1541`
-		// Minimum execution time: 12_042_000 picoseconds.
-		Weight::from_parts(12_645_000, 1541)
+		// Minimum execution time: 8_651_000 picoseconds.
+		Weight::from_parts(9_056_000, 1541)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Salary Status (r:1 w:0)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:0)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn induct() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `395`
 		//  Estimated: `3543`
-		// Minimum execution time: 18_374_000 picoseconds.
-		Weight::from_parts(19_200_000, 3543)
+		// Minimum execution time: 16_513_000 picoseconds.
+		Weight::from_parts(17_305_000, 3543)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn register() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3543`
-		// Minimum execution time: 22_696_000 picoseconds.
-		Weight::from_parts(23_275_000, 3543)
+		// Minimum execution time: 18_913_000 picoseconds.
+		Weight::from_parts(19_867_000, 3543)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3543`
-		// Minimum execution time: 63_660_000 picoseconds.
-		Weight::from_parts(65_006_000, 3543)
+		// Minimum execution time: 53_297_000 picoseconds.
+		Weight::from_parts(55_144_000, 3543)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3593`
-		// Minimum execution time: 64_706_000 picoseconds.
-		Weight::from_parts(65_763_000, 3593)
+		// Minimum execution time: 53_638_000 picoseconds.
+		Weight::from_parts(55_328_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn check_payment() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `170`
 		//  Estimated: `3543`
-		// Minimum execution time: 11_838_000 picoseconds.
-		Weight::from_parts(12_323_000, 3543)
+		// Minimum execution time: 10_557_000 picoseconds.
+		Weight::from_parts(11_145_000, 3543)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
 	fn init() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `4`
 		//  Estimated: `1541`
-		// Minimum execution time: 10_778_000 picoseconds.
-		Weight::from_parts(11_084_000, 1541)
+		// Minimum execution time: 7_421_000 picoseconds.
+		Weight::from_parts(7_819_000, 1541)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
 	fn bump() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `86`
 		//  Estimated: `1541`
-		// Minimum execution time: 12_042_000 picoseconds.
-		Weight::from_parts(12_645_000, 1541)
+		// Minimum execution time: 8_651_000 picoseconds.
+		Weight::from_parts(9_056_000, 1541)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Salary Status (r:1 w:0)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:0)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn induct() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `395`
 		//  Estimated: `3543`
-		// Minimum execution time: 18_374_000 picoseconds.
-		Weight::from_parts(19_200_000, 3543)
+		// Minimum execution time: 16_513_000 picoseconds.
+		Weight::from_parts(17_305_000, 3543)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn register() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3543`
-		// Minimum execution time: 22_696_000 picoseconds.
-		Weight::from_parts(23_275_000, 3543)
+		// Minimum execution time: 18_913_000 picoseconds.
+		Weight::from_parts(19_867_000, 3543)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3543`
-		// Minimum execution time: 63_660_000 picoseconds.
-		Weight::from_parts(65_006_000, 3543)
+		// Minimum execution time: 53_297_000 picoseconds.
+		Weight::from_parts(55_144_000, 3543)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
-	/// Storage: RankedCollective Members (r:1 w:0)
-	/// Proof: RankedCollective Members (max_values: None, max_size: Some(42), added: 2517, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
+	/// Storage: `RankedCollective::Members` (r:1 w:0)
+	/// Proof: `RankedCollective::Members` (`max_values`: None, `max_size`: Some(42), added: 2517, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout_other() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `462`
 		//  Estimated: `3593`
-		// Minimum execution time: 64_706_000 picoseconds.
-		Weight::from_parts(65_763_000, 3593)
+		// Minimum execution time: 53_638_000 picoseconds.
+		Weight::from_parts(55_328_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Salary Status (r:1 w:1)
-	/// Proof: Salary Status (max_values: Some(1), max_size: Some(56), added: 551, mode: MaxEncodedLen)
-	/// Storage: Salary Claimant (r:1 w:1)
-	/// Proof: Salary Claimant (max_values: None, max_size: Some(78), added: 2553, mode: MaxEncodedLen)
+	/// Storage: `Salary::Status` (r:1 w:1)
+	/// Proof: `Salary::Status` (`max_values`: Some(1), `max_size`: Some(56), added: 551, mode: `MaxEncodedLen`)
+	/// Storage: `Salary::Claimant` (r:1 w:1)
+	/// Proof: `Salary::Claimant` (`max_values`: None, `max_size`: Some(78), added: 2553, mode: `MaxEncodedLen`)
 	fn check_payment() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `170`
 		//  Estimated: `3543`
-		// Minimum execution time: 11_838_000 picoseconds.
-		Weight::from_parts(12_323_000, 3543)
+		// Minimum execution time: 10_557_000 picoseconds.
+		Weight::from_parts(11_145_000, 3543)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
diff --git a/substrate/frame/sassafras/src/mock.rs b/substrate/frame/sassafras/src/mock.rs
index 5e5909fcb0d..4c6efaa63a9 100644
--- a/substrate/frame/sassafras/src/mock.rs
+++ b/substrate/frame/sassafras/src/mock.rs
@@ -34,7 +34,8 @@ use sp_core::{
 	H256, U256,
 };
 use sp_runtime::{
-	testing::{Digest, DigestItem, Header, TestXt},
+	generic::UncheckedExtrinsic,
+	testing::{Digest, DigestItem, Header},
 	BuildStorage,
 };
 
@@ -53,7 +54,7 @@ where
 	RuntimeCall: From<C>,
 {
 	type OverarchingCall = RuntimeCall;
-	type Extrinsic = TestXt<RuntimeCall, ()>;
+	type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 }
 
 impl pallet_sassafras::Config for Test {
diff --git a/substrate/frame/scheduler/src/weights.rs b/substrate/frame/scheduler/src/weights.rs
index 9b7e5405a1b..6c98145d266 100644
--- a/substrate/frame/scheduler/src/weights.rs
+++ b/substrate/frame/scheduler/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_scheduler`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_scheduler
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_scheduler
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/scheduler/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -77,8 +79,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `31`
 		//  Estimated: `1489`
-		// Minimum execution time: 3_040_000 picoseconds.
-		Weight::from_parts(3_202_000, 1489)
+		// Minimum execution time: 3_128_000 picoseconds.
+		Weight::from_parts(3_372_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -89,10 +91,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 3_462_000 picoseconds.
-		Weight::from_parts(6_262_125, 110487)
-			// Standard Error: 536
-			.saturating_add(Weight::from_parts(332_570, 0).saturating_mul(s.into()))
+		// Minimum execution time: 3_560_000 picoseconds.
+		Weight::from_parts(6_356_795, 110487)
+			// Standard Error: 493
+			.saturating_add(Weight::from_parts(315_098, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -100,8 +102,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_425_000 picoseconds.
-		Weight::from_parts(3_680_000, 0)
+		// Minimum execution time: 3_501_000 picoseconds.
+		Weight::from_parts(3_722_000, 0)
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
@@ -114,10 +116,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `246 + s * (1 ±0)`
 		//  Estimated: `3711 + s * (1 ±0)`
-		// Minimum execution time: 17_564_000 picoseconds.
-		Weight::from_parts(17_887_000, 3711)
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_253, 0).saturating_mul(s.into()))
+		// Minimum execution time: 17_976_000 picoseconds.
+		Weight::from_parts(18_137_000, 3711)
+			// Standard Error: 0
+			.saturating_add(Weight::from_parts(1_173, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into()))
@@ -128,16 +130,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_934_000 picoseconds.
-		Weight::from_parts(5_275_000, 0)
+		// Minimum execution time: 4_935_000 picoseconds.
+		Weight::from_parts(5_133_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	fn service_task_periodic() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_348_000 picoseconds.
-		Weight::from_parts(3_561_000, 0)
+		// Minimum execution time: 3_467_000 picoseconds.
+		Weight::from_parts(3_654_000, 0)
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -147,16 +149,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `145`
 		//  Estimated: `3997`
-		// Minimum execution time: 6_395_000 picoseconds.
-		Weight::from_parts(6_642_000, 3997)
+		// Minimum execution time: 6_528_000 picoseconds.
+		Weight::from_parts(6_820_000, 3997)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_167_000 picoseconds.
-		Weight::from_parts(2_266_000, 0)
+		// Minimum execution time: 2_202_000 picoseconds.
+		Weight::from_parts(2_360_000, 0)
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
@@ -165,15 +167,17 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_009_000 picoseconds.
-		Weight::from_parts(13_565_985, 110487)
-			// Standard Error: 575
-			.saturating_add(Weight::from_parts(354_760, 0).saturating_mul(s.into()))
+		// Minimum execution time: 10_222_000 picoseconds.
+		Weight::from_parts(13_654_958, 110487)
+			// Standard Error: 676
+			.saturating_add(Weight::from_parts(338_633, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Lookup` (r:0 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
@@ -181,12 +185,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 14_048_000 picoseconds.
-		Weight::from_parts(15_141_696, 110487)
-			// Standard Error: 1_082
-			.saturating_add(Weight::from_parts(533_390, 0).saturating_mul(s.into()))
+		// Minimum execution time: 15_517_000 picoseconds.
+		Weight::from_parts(17_464_075, 110487)
+			// Standard Error: 952
+			.saturating_add(Weight::from_parts(495_806, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
-			.saturating_add(T::DbWeight::get().writes(2_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Scheduler::Lookup` (r:1 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
@@ -197,10 +201,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `596 + s * (178 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 12_902_000 picoseconds.
-		Weight::from_parts(18_957_156, 110487)
-			// Standard Error: 792
-			.saturating_add(Weight::from_parts(361_909, 0).saturating_mul(s.into()))
+		// Minimum execution time: 13_091_000 picoseconds.
+		Weight::from_parts(19_101_313, 110487)
+			// Standard Error: 662
+			.saturating_add(Weight::from_parts(342_468, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -208,35 +212,35 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
 	fn cancel_named(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `709 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 15_933_000 picoseconds.
-		Weight::from_parts(18_091_415, 110487)
-			// Standard Error: 779
-			.saturating_add(Weight::from_parts(534_402, 0).saturating_mul(s.into()))
+		// Minimum execution time: 17_579_000 picoseconds.
+		Weight::from_parts(20_561_921, 110487)
+			// Standard Error: 792
+			.saturating_add(Weight::from_parts(500_463, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(2_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: `Scheduler::Retries` (r:1 w:2)
-	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
-	/// Storage: `Scheduler::Lookup` (r:0 w:1)
-	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
 	fn schedule_retry(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `159`
+		//  Measured:  `118`
 		//  Estimated: `110487`
-		// Minimum execution time: 14_155_000 picoseconds.
-		Weight::from_parts(16_447_031, 110487)
-			// Standard Error: 233
-			.saturating_add(Weight::from_parts(8_424, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+		// Minimum execution time: 8_996_000 picoseconds.
+		Weight::from_parts(11_393_234, 110487)
+			// Standard Error: 190
+			.saturating_add(Weight::from_parts(6_714, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:0)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
@@ -244,10 +248,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn set_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `81 + s * (177 ±0)`
+		//  Measured:  `90705`
 		//  Estimated: `110487`
-		// Minimum execution time: 8_130_000 picoseconds.
-		Weight::from_parts(9_047_554, 110487)
+		// Minimum execution time: 121_505_000 picoseconds.
+		Weight::from_parts(124_306_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -259,10 +263,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn set_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `647 + s * (178 ±0)`
+		//  Measured:  `91747`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_838_000 picoseconds.
-		Weight::from_parts(12_804_076, 110487)
+		// Minimum execution time: 128_070_000 picoseconds.
+		Weight::from_parts(132_683_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -272,10 +276,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `81 + s * (177 ±0)`
+		//  Measured:  `90717`
 		//  Estimated: `110487`
-		// Minimum execution time: 8_130_000 picoseconds.
-		Weight::from_parts(9_047_554, 110487)
+		// Minimum execution time: 118_260_000 picoseconds.
+		Weight::from_parts(119_722_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -287,10 +291,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `647 + s * (178 ±0)`
+		//  Measured:  `91759`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_838_000 picoseconds.
-		Weight::from_parts(12_804_076, 110487)
+		// Minimum execution time: 129_036_000 picoseconds.
+		Weight::from_parts(133_975_000, 110487)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -304,8 +308,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `31`
 		//  Estimated: `1489`
-		// Minimum execution time: 3_040_000 picoseconds.
-		Weight::from_parts(3_202_000, 1489)
+		// Minimum execution time: 3_128_000 picoseconds.
+		Weight::from_parts(3_372_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -316,10 +320,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 3_462_000 picoseconds.
-		Weight::from_parts(6_262_125, 110487)
-			// Standard Error: 536
-			.saturating_add(Weight::from_parts(332_570, 0).saturating_mul(s.into()))
+		// Minimum execution time: 3_560_000 picoseconds.
+		Weight::from_parts(6_356_795, 110487)
+			// Standard Error: 493
+			.saturating_add(Weight::from_parts(315_098, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -327,8 +331,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_425_000 picoseconds.
-		Weight::from_parts(3_680_000, 0)
+		// Minimum execution time: 3_501_000 picoseconds.
+		Weight::from_parts(3_722_000, 0)
 	}
 	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
 	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
@@ -341,10 +345,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `246 + s * (1 ±0)`
 		//  Estimated: `3711 + s * (1 ±0)`
-		// Minimum execution time: 17_564_000 picoseconds.
-		Weight::from_parts(17_887_000, 3711)
-			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_253, 0).saturating_mul(s.into()))
+		// Minimum execution time: 17_976_000 picoseconds.
+		Weight::from_parts(18_137_000, 3711)
+			// Standard Error: 0
+			.saturating_add(Weight::from_parts(1_173, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into()))
@@ -355,16 +359,16 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_934_000 picoseconds.
-		Weight::from_parts(5_275_000, 0)
+		// Minimum execution time: 4_935_000 picoseconds.
+		Weight::from_parts(5_133_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	fn service_task_periodic() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_348_000 picoseconds.
-		Weight::from_parts(3_561_000, 0)
+		// Minimum execution time: 3_467_000 picoseconds.
+		Weight::from_parts(3_654_000, 0)
 	}
 	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
 	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -374,16 +378,16 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `145`
 		//  Estimated: `3997`
-		// Minimum execution time: 6_395_000 picoseconds.
-		Weight::from_parts(6_642_000, 3997)
+		// Minimum execution time: 6_528_000 picoseconds.
+		Weight::from_parts(6_820_000, 3997)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	fn execute_dispatch_unsigned() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_167_000 picoseconds.
-		Weight::from_parts(2_266_000, 0)
+		// Minimum execution time: 2_202_000 picoseconds.
+		Weight::from_parts(2_360_000, 0)
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
@@ -392,15 +396,17 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_009_000 picoseconds.
-		Weight::from_parts(13_565_985, 110487)
-			// Standard Error: 575
-			.saturating_add(Weight::from_parts(354_760, 0).saturating_mul(s.into()))
+		// Minimum execution time: 10_222_000 picoseconds.
+		Weight::from_parts(13_654_958, 110487)
+			// Standard Error: 676
+			.saturating_add(Weight::from_parts(338_633, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Lookup` (r:0 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
@@ -408,12 +414,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `81 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 14_048_000 picoseconds.
-		Weight::from_parts(15_141_696, 110487)
-			// Standard Error: 1_082
-			.saturating_add(Weight::from_parts(533_390, 0).saturating_mul(s.into()))
+		// Minimum execution time: 15_517_000 picoseconds.
+		Weight::from_parts(17_464_075, 110487)
+			// Standard Error: 952
+			.saturating_add(Weight::from_parts(495_806, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
-			.saturating_add(RocksDbWeight::get().writes(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 	/// Storage: `Scheduler::Lookup` (r:1 w:1)
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
@@ -424,10 +430,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `596 + s * (178 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 12_902_000 picoseconds.
-		Weight::from_parts(18_957_156, 110487)
-			// Standard Error: 792
-			.saturating_add(Weight::from_parts(361_909, 0).saturating_mul(s.into()))
+		// Minimum execution time: 13_091_000 picoseconds.
+		Weight::from_parts(19_101_313, 110487)
+			// Standard Error: 662
+			.saturating_add(Weight::from_parts(342_468, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -435,35 +441,35 @@ impl WeightInfo for () {
 	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
 	fn cancel_named(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `709 + s * (177 ±0)`
 		//  Estimated: `110487`
-		// Minimum execution time: 15_933_000 picoseconds.
-		Weight::from_parts(18_091_415, 110487)
-			// Standard Error: 779
-			.saturating_add(Weight::from_parts(534_402, 0).saturating_mul(s.into()))
+		// Minimum execution time: 17_579_000 picoseconds.
+		Weight::from_parts(20_561_921, 110487)
+			// Standard Error: 792
+			.saturating_add(Weight::from_parts(500_463, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: `Scheduler::Retries` (r:1 w:2)
-	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// Storage: `Scheduler::Agenda` (r:1 w:1)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
-	/// Storage: `Scheduler::Lookup` (r:0 w:1)
-	/// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+	/// Storage: `Scheduler::Retries` (r:0 w:1)
+	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[1, 512]`.
 	fn schedule_retry(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `159`
+		//  Measured:  `118`
 		//  Estimated: `110487`
-		// Minimum execution time: 14_155_000 picoseconds.
-		Weight::from_parts(16_447_031, 110487)
-			// Standard Error: 233
-			.saturating_add(Weight::from_parts(8_424, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+		// Minimum execution time: 8_996_000 picoseconds.
+		Weight::from_parts(11_393_234, 110487)
+			// Standard Error: 190
+			.saturating_add(Weight::from_parts(6_714, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Scheduler::Agenda` (r:1 w:0)
 	/// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(107022), added: 109497, mode: `MaxEncodedLen`)
@@ -471,10 +477,10 @@ impl WeightInfo for () {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn set_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `81 + s * (177 ±0)`
+		//  Measured:  `90705`
 		//  Estimated: `110487`
-		// Minimum execution time: 8_130_000 picoseconds.
-		Weight::from_parts(9_047_554, 110487)
+		// Minimum execution time: 121_505_000 picoseconds.
+		Weight::from_parts(124_306_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -486,10 +492,10 @@ impl WeightInfo for () {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn set_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `647 + s * (178 ±0)`
+		//  Measured:  `91747`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_838_000 picoseconds.
-		Weight::from_parts(12_804_076, 110487)
+		// Minimum execution time: 128_070_000 picoseconds.
+		Weight::from_parts(132_683_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -499,10 +505,10 @@ impl WeightInfo for () {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel_retry() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `81 + s * (177 ±0)`
+		//  Measured:  `90717`
 		//  Estimated: `110487`
-		// Minimum execution time: 8_130_000 picoseconds.
-		Weight::from_parts(9_047_554, 110487)
+		// Minimum execution time: 118_260_000 picoseconds.
+		Weight::from_parts(119_722_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -514,10 +520,10 @@ impl WeightInfo for () {
 	/// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
 	fn cancel_retry_named() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `647 + s * (178 ±0)`
+		//  Measured:  `91759`
 		//  Estimated: `110487`
-		// Minimum execution time: 10_838_000 picoseconds.
-		Weight::from_parts(12_804_076, 110487)
+		// Minimum execution time: 129_036_000 picoseconds.
+		Weight::from_parts(133_975_000, 110487)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/session/src/weights.rs b/substrate/frame/session/src/weights.rs
index dd9848fd2c1..09eb665ff3d 100644
--- a/substrate/frame/session/src/weights.rs
+++ b/substrate/frame/session/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_session
+//! Autogenerated weights for `pallet_session`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/session/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/session/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,77 +49,77 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_session.
+/// Weight functions needed for `pallet_session`.
 pub trait WeightInfo {
 	fn set_keys() -> Weight;
 	fn purge_keys() -> Weight;
 }
 
-/// Weights for pallet_session using the Substrate node and recommended hardware.
+/// Weights for `pallet_session` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Session NextKeys (r:1 w:1)
-	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Session KeyOwner (r:4 w:4)
-	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Session::NextKeys` (r:1 w:1)
+	/// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::KeyOwner` (r:6 w:6)
+	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn set_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1924`
-		//  Estimated: `12814`
-		// Minimum execution time: 55_459_000 picoseconds.
-		Weight::from_parts(56_180_000, 12814)
-			.saturating_add(T::DbWeight::get().reads(6_u64))
-			.saturating_add(T::DbWeight::get().writes(5_u64))
+		//  Measured:  `1919`
+		//  Estimated: `17759`
+		// Minimum execution time: 57_921_000 picoseconds.
+		Weight::from_parts(58_960_000, 17759)
+			.saturating_add(T::DbWeight::get().reads(8_u64))
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Session NextKeys (r:1 w:1)
-	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Session KeyOwner (r:0 w:4)
-	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Session::NextKeys` (r:1 w:1)
+	/// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::KeyOwner` (r:0 w:6)
+	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn purge_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1791`
-		//  Estimated: `5256`
-		// Minimum execution time: 40_194_000 picoseconds.
-		Weight::from_parts(41_313_000, 5256)
+		//  Measured:  `1817`
+		//  Estimated: `5282`
+		// Minimum execution time: 40_983_000 picoseconds.
+		Weight::from_parts(42_700_000, 5282)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(5_u64))
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Session NextKeys (r:1 w:1)
-	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Session KeyOwner (r:4 w:4)
-	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Session::NextKeys` (r:1 w:1)
+	/// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::KeyOwner` (r:6 w:6)
+	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn set_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1924`
-		//  Estimated: `12814`
-		// Minimum execution time: 55_459_000 picoseconds.
-		Weight::from_parts(56_180_000, 12814)
-			.saturating_add(RocksDbWeight::get().reads(6_u64))
-			.saturating_add(RocksDbWeight::get().writes(5_u64))
+		//  Measured:  `1919`
+		//  Estimated: `17759`
+		// Minimum execution time: 57_921_000 picoseconds.
+		Weight::from_parts(58_960_000, 17759)
+			.saturating_add(RocksDbWeight::get().reads(8_u64))
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
-	/// Storage: Staking Ledger (r:1 w:0)
-	/// Proof: Staking Ledger (max_values: None, max_size: Some(1091), added: 3566, mode: MaxEncodedLen)
-	/// Storage: Session NextKeys (r:1 w:1)
-	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Session KeyOwner (r:0 w:4)
-	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Staking::Ledger` (r:1 w:0)
+	/// Proof: `Staking::Ledger` (`max_values`: None, `max_size`: Some(1091), added: 3566, mode: `MaxEncodedLen`)
+	/// Storage: `Session::NextKeys` (r:1 w:1)
+	/// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Session::KeyOwner` (r:0 w:6)
+	/// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn purge_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1791`
-		//  Estimated: `5256`
-		// Minimum execution time: 40_194_000 picoseconds.
-		Weight::from_parts(41_313_000, 5256)
+		//  Measured:  `1817`
+		//  Estimated: `5282`
+		// Minimum execution time: 40_983_000 picoseconds.
+		Weight::from_parts(42_700_000, 5282)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
 }
diff --git a/substrate/frame/society/src/weights.rs b/substrate/frame/society/src/weights.rs
index c32c2383ac9..1245f762972 100644
--- a/substrate/frame/society/src/weights.rs
+++ b/substrate/frame/society/src/weights.rs
@@ -7,7 +7,7 @@
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-// http://www.apache.org/licenses/LICENSE-2.0
+// 	http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
@@ -15,35 +15,41 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_society
+//! Autogenerated weights for `pallet_society`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-09-13, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
 // --steps=50
 // --repeat=20
 // --pallet=pallet_society
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
-// --template=./.maintain/frame-weight-template.hbs
-// --header=./HEADER-APACHE2
-// --output=./frame/society/src/weights.rs
+// --heap-pages=4096
+// --output=./substrate/frame/society/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
 #![allow(unused_imports)]
+#![allow(missing_docs)]
 
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_society.
+/// Weight functions needed for `pallet_society`.
 pub trait WeightInfo {
 	fn bid() -> Weight;
 	fn unbid() -> Weight;
@@ -67,309 +73,739 @@ pub trait WeightInfo {
 	fn cleanup_challenge() -> Weight;
 }
 
-/// Weights for pallet_society using the Substrate node and recommended hardware.
+/// Weights for `pallet_society` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society SuspendedMembers (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:0)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn bid() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `444`
+		//  Estimated: `3909`
+		// Minimum execution time: 29_905_000 picoseconds.
+		Weight::from_parts(31_031_000, 3909)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn unbid() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society Members (r:2 w:1)
-	// Storage: Society SuspendedMembers (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `461`
+		//  Estimated: `1946`
+		// Minimum execution time: 23_038_000 picoseconds.
+		Weight::from_parts(23_904_000, 1946)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:2 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:0)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn vouch() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Members (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `481`
+		//  Estimated: `6421`
+		// Minimum execution time: 21_197_000 picoseconds.
+		Weight::from_parts(22_043_000, 6421)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn unvouch() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society Votes (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `535`
+		//  Estimated: `4000`
+		// Minimum execution time: 14_402_000 picoseconds.
+		Weight::from_parts(15_171_000, 4000)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:1 w:1)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn vote() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Defending (r:1 w:1)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society ChallengeRoundCount (r:1 w:0)
-	// Storage: Society DefenderVotes (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `569`
+		//  Estimated: `4034`
+		// Minimum execution time: 21_930_000 picoseconds.
+		Weight::from_parts(22_666_000, 4034)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Defending` (r:1 w:1)
+	/// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::ChallengeRoundCount` (r:1 w:0)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::DefenderVotes` (r:1 w:1)
+	/// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn defender_vote() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society Payouts (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `561`
+		//  Estimated: `4026`
+		// Minimum execution time: 18_821_000 picoseconds.
+		Weight::from_parts(19_633_000, 4026)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:1)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Members (r:1 w:1)
-	// Storage: Society Payouts (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `650`
+		//  Estimated: `4115`
+		// Minimum execution time: 47_262_000 picoseconds.
+		Weight::from_parts(48_313_000, 4115)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:1)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn waive_repay() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Head (r:1 w:1)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Founder (r:0 w:1)
-	// Storage: Society Rules (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
-	// Storage: Society Parameters (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `547`
+		//  Estimated: `4012`
+		// Minimum execution time: 18_189_000 picoseconds.
+		Weight::from_parts(19_038_000, 4012)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Head` (r:1 w:1)
+	/// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Founder` (r:0 w:1)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Rules` (r:0 w:1)
+	/// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn found_society() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:1)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society Head (r:0 w:1)
-	// Storage: Society Defending (r:0 w:1)
-	// Storage: Society ChallengeRoundCount (r:0 w:1)
-	// Storage: Society MemberByIndex (r:0 w:5)
-	// Storage: Society Skeptic (r:0 w:1)
-	// Storage: Society Candidates (r:0 w:4)
-	// Storage: Society Pot (r:0 w:1)
-	// Storage: Society Rules (r:0 w:1)
-	// Storage: Society Votes (r:0 w:4)
-	// Storage: Society Members (r:0 w:5)
-	// Storage: Society RoundCount (r:0 w:1)
-	// Storage: Society Bids (r:0 w:1)
-	// Storage: Society Parameters (r:0 w:1)
-	// Storage: Society NextHead (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `1665`
+		// Minimum execution time: 14_815_000 picoseconds.
+		Weight::from_parts(15_426_000, 1665)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(7_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:1)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:5 w:5)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberByIndex` (r:5 w:5)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:4 w:4)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:4 w:4)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Head` (r:0 w:1)
+	/// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Defending` (r:0 w:1)
+	/// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::ChallengeRoundCount` (r:0 w:1)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Skeptic` (r:0 w:1)
+	/// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Pot` (r:0 w:1)
+	/// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Rules` (r:0 w:1)
+	/// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:0 w:1)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Bids` (r:0 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:0 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn dissolve() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society SuspendedMembers (r:1 w:1)
-	// Storage: Society Payouts (r:1 w:0)
-	// Storage: Society Pot (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `1654`
+		//  Estimated: `15019`
+		// Minimum execution time: 57_787_000 picoseconds.
+		Weight::from_parts(59_489_000, 15019)
+			.saturating_add(T::DbWeight::get().reads(20_u64))
+			.saturating_add(T::DbWeight::get().writes(30_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:1)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:0)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Pot` (r:1 w:1)
+	/// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn judge_suspended_member() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:0)
-	// Storage: Society Parameters (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `505`
+		//  Estimated: `3970`
+		// Minimum execution time: 19_262_000 picoseconds.
+		Weight::from_parts(19_752_000, 3970)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:0)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn set_parameters() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Skeptic (r:1 w:0)
-	// Storage: Society Votes (r:1 w:0)
-	// Storage: Society Members (r:1 w:1)
-	// Storage: Society Parameters (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `387`
+		//  Estimated: `1872`
+		// Minimum execution time: 10_656_000 picoseconds.
+		Weight::from_parts(11_063_000, 1872)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Skeptic` (r:1 w:0)
+	/// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:1 w:0)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn punish_skeptic() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society NextHead (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `636`
+		//  Estimated: `4101`
+		// Minimum execution time: 22_837_000 picoseconds.
+		Weight::from_parts(23_738_000, 4101)
+			.saturating_add(T::DbWeight::get().reads(6_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:1 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn claim_membership() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society NextHead (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `632`
+		//  Estimated: `4097`
+		// Minimum execution time: 35_142_000 picoseconds.
+		Weight::from_parts(36_811_000, 4097)
+			.saturating_add(T::DbWeight::get().reads(6_u64))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:1 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn bestow_membership() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `650`
+		//  Estimated: `4115`
+		// Minimum execution time: 37_133_000 picoseconds.
+		Weight::from_parts(38_366_000, 4115)
+			.saturating_add(T::DbWeight::get().reads(7_u64))
+			.saturating_add(T::DbWeight::get().writes(6_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn kick_candidate() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `776`
+		//  Estimated: `6196`
+		// Minimum execution time: 37_033_000 picoseconds.
+		Weight::from_parts(38_293_000, 6196)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn resign_candidacy() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `746`
+		//  Estimated: `6196`
+		// Minimum execution time: 35_203_000 picoseconds.
+		Weight::from_parts(36_252_000, 6196)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn drop_candidate() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society VoteClearCursor (r:1 w:0)
-	// Storage: Society Votes (r:0 w:2)
+		// Proof Size summary in bytes:
+		//  Measured:  `758`
+		//  Estimated: `6196`
+		// Minimum execution time: 35_518_000 picoseconds.
+		Weight::from_parts(36_508_000, 6196)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::VoteClearCursor` (r:1 w:0)
+	/// Proof: `Society::VoteClearCursor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:2 w:2)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn cleanup_candidacy() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society ChallengeRoundCount (r:1 w:0)
-	// Storage: Society DefenderVotes (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `552`
+		//  Estimated: `6492`
+		// Minimum execution time: 17_001_000 picoseconds.
+		Weight::from_parts(17_845_000, 6492)
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::ChallengeRoundCount` (r:1 w:0)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::DefenderVotes` (r:1 w:1)
+	/// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn cleanup_challenge() -> Weight {
-		Weight::zero()
+		// Proof Size summary in bytes:
+		//  Measured:  `510`
+		//  Estimated: `3975`
+		// Minimum execution time: 11_583_000 picoseconds.
+		Weight::from_parts(12_134_000, 3975)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society SuspendedMembers (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:0)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn bid() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `444`
+		//  Estimated: `3909`
+		// Minimum execution time: 29_905_000 picoseconds.
+		Weight::from_parts(31_031_000, 3909)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn unbid() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society Members (r:2 w:1)
-	// Storage: Society SuspendedMembers (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `461`
+		//  Estimated: `1946`
+		// Minimum execution time: 23_038_000 picoseconds.
+		Weight::from_parts(23_904_000, 1946)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:2 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:0)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn vouch() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Bids (r:1 w:1)
-	// Storage: Society Members (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `481`
+		//  Estimated: `6421`
+		// Minimum execution time: 21_197_000 picoseconds.
+		Weight::from_parts(22_043_000, 6421)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Bids` (r:1 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn unvouch() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society Votes (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `535`
+		//  Estimated: `4000`
+		// Minimum execution time: 14_402_000 picoseconds.
+		Weight::from_parts(15_171_000, 4000)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:1 w:1)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn vote() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Defending (r:1 w:1)
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society ChallengeRoundCount (r:1 w:0)
-	// Storage: Society DefenderVotes (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `569`
+		//  Estimated: `4034`
+		// Minimum execution time: 21_930_000 picoseconds.
+		Weight::from_parts(22_666_000, 4034)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Defending` (r:1 w:1)
+	/// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::ChallengeRoundCount` (r:1 w:0)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::DefenderVotes` (r:1 w:1)
+	/// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn defender_vote() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Members (r:1 w:0)
-	// Storage: Society Payouts (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `561`
+		//  Estimated: `4026`
+		// Minimum execution time: 18_821_000 picoseconds.
+		Weight::from_parts(19_633_000, 4026)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Members` (r:1 w:0)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:1)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Members (r:1 w:1)
-	// Storage: Society Payouts (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `650`
+		//  Estimated: `4115`
+		// Minimum execution time: 47_262_000 picoseconds.
+		Weight::from_parts(48_313_000, 4115)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:1)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn waive_repay() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Head (r:1 w:1)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Founder (r:0 w:1)
-	// Storage: Society Rules (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
-	// Storage: Society Parameters (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `547`
+		//  Estimated: `4012`
+		// Minimum execution time: 18_189_000 picoseconds.
+		Weight::from_parts(19_038_000, 4012)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Head` (r:1 w:1)
+	/// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Founder` (r:0 w:1)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Rules` (r:0 w:1)
+	/// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn found_society() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:1)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society Head (r:0 w:1)
-	// Storage: Society Defending (r:0 w:1)
-	// Storage: Society ChallengeRoundCount (r:0 w:1)
-	// Storage: Society MemberByIndex (r:0 w:5)
-	// Storage: Society Skeptic (r:0 w:1)
-	// Storage: Society Candidates (r:0 w:4)
-	// Storage: Society Pot (r:0 w:1)
-	// Storage: Society Rules (r:0 w:1)
-	// Storage: Society Votes (r:0 w:4)
-	// Storage: Society Members (r:0 w:5)
-	// Storage: Society RoundCount (r:0 w:1)
-	// Storage: Society Bids (r:0 w:1)
-	// Storage: Society Parameters (r:0 w:1)
-	// Storage: Society NextHead (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `180`
+		//  Estimated: `1665`
+		// Minimum execution time: 14_815_000 picoseconds.
+		Weight::from_parts(15_426_000, 1665)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:1)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:5 w:5)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberByIndex` (r:5 w:5)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:4 w:4)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:4 w:4)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Head` (r:0 w:1)
+	/// Proof: `Society::Head` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Defending` (r:0 w:1)
+	/// Proof: `Society::Defending` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::ChallengeRoundCount` (r:0 w:1)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Skeptic` (r:0 w:1)
+	/// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Pot` (r:0 w:1)
+	/// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Rules` (r:0 w:1)
+	/// Proof: `Society::Rules` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:0 w:1)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Bids` (r:0 w:1)
+	/// Proof: `Society::Bids` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:0 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn dissolve() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society SuspendedMembers (r:1 w:1)
-	// Storage: Society Payouts (r:1 w:0)
-	// Storage: Society Pot (r:1 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `1654`
+		//  Estimated: `15019`
+		// Minimum execution time: 57_787_000 picoseconds.
+		Weight::from_parts(59_489_000, 15019)
+			.saturating_add(RocksDbWeight::get().reads(20_u64))
+			.saturating_add(RocksDbWeight::get().writes(30_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::SuspendedMembers` (r:1 w:1)
+	/// Proof: `Society::SuspendedMembers` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Payouts` (r:1 w:0)
+	/// Proof: `Society::Payouts` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Pot` (r:1 w:1)
+	/// Proof: `Society::Pot` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn judge_suspended_member() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:0)
-	// Storage: Society Parameters (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `505`
+		//  Estimated: `3970`
+		// Minimum execution time: 19_262_000 picoseconds.
+		Weight::from_parts(19_752_000, 3970)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:0)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:0 w:1)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn set_parameters() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Skeptic (r:1 w:0)
-	// Storage: Society Votes (r:1 w:0)
-	// Storage: Society Members (r:1 w:1)
-	// Storage: Society Parameters (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `387`
+		//  Estimated: `1872`
+		// Minimum execution time: 10_656_000 picoseconds.
+		Weight::from_parts(11_063_000, 1872)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Skeptic` (r:1 w:0)
+	/// Proof: `Society::Skeptic` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:1 w:0)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:1 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	fn punish_skeptic() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society NextHead (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `636`
+		//  Estimated: `4101`
+		// Minimum execution time: 22_837_000 picoseconds.
+		Weight::from_parts(23_738_000, 4101)
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:1 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn claim_membership() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
-	// Storage: Society Parameters (r:1 w:0)
-	// Storage: Society MemberCount (r:1 w:1)
-	// Storage: Society NextHead (r:1 w:1)
-	// Storage: System Account (r:1 w:1)
-	// Storage: Society MemberByIndex (r:0 w:1)
-	// Storage: Society Members (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `632`
+		//  Estimated: `4097`
+		// Minimum execution time: 35_142_000 picoseconds.
+		Weight::from_parts(36_811_000, 4097)
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Parameters` (r:1 w:0)
+	/// Proof: `Society::Parameters` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::MemberCount` (r:1 w:1)
+	/// Proof: `Society::MemberCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::NextHead` (r:1 w:1)
+	/// Proof: `Society::NextHead` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Society::MemberByIndex` (r:0 w:1)
+	/// Proof: `Society::MemberByIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Members` (r:0 w:1)
+	/// Proof: `Society::Members` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn bestow_membership() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Founder (r:1 w:0)
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `650`
+		//  Estimated: `4115`
+		// Minimum execution time: 37_133_000 picoseconds.
+		Weight::from_parts(38_366_000, 4115)
+			.saturating_add(RocksDbWeight::get().reads(7_u64))
+			.saturating_add(RocksDbWeight::get().writes(6_u64))
+	}
+	/// Storage: `Society::Founder` (r:1 w:0)
+	/// Proof: `Society::Founder` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn kick_candidate() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `776`
+		//  Estimated: `6196`
+		// Minimum execution time: 37_033_000 picoseconds.
+		Weight::from_parts(38_293_000, 6196)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn resign_candidacy() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:1)
-	// Storage: Society RoundCount (r:1 w:0)
+		// Proof Size summary in bytes:
+		//  Measured:  `746`
+		//  Estimated: `6196`
+		// Minimum execution time: 35_203_000 picoseconds.
+		Weight::from_parts(36_252_000, 6196)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:1)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::RoundCount` (r:1 w:0)
+	/// Proof: `Society::RoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:2 w:2)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn drop_candidate() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society Candidates (r:1 w:0)
-	// Storage: Society VoteClearCursor (r:1 w:0)
-	// Storage: Society Votes (r:0 w:2)
+		// Proof Size summary in bytes:
+		//  Measured:  `758`
+		//  Estimated: `6196`
+		// Minimum execution time: 35_518_000 picoseconds.
+		Weight::from_parts(36_508_000, 6196)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
+	}
+	/// Storage: `Society::Candidates` (r:1 w:0)
+	/// Proof: `Society::Candidates` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::VoteClearCursor` (r:1 w:0)
+	/// Proof: `Society::VoteClearCursor` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::Votes` (r:2 w:2)
+	/// Proof: `Society::Votes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn cleanup_candidacy() -> Weight {
-		Weight::zero()
-	}
-	// Storage: Society ChallengeRoundCount (r:1 w:0)
-	// Storage: Society DefenderVotes (r:0 w:1)
+		// Proof Size summary in bytes:
+		//  Measured:  `552`
+		//  Estimated: `6492`
+		// Minimum execution time: 17_001_000 picoseconds.
+		Weight::from_parts(17_845_000, 6492)
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+	/// Storage: `Society::ChallengeRoundCount` (r:1 w:0)
+	/// Proof: `Society::ChallengeRoundCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Society::DefenderVotes` (r:1 w:1)
+	/// Proof: `Society::DefenderVotes` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn cleanup_challenge() -> Weight {
-		Weight::zero()
+		// Proof Size summary in bytes:
+		//  Measured:  `510`
+		//  Estimated: `3975`
+		// Minimum execution time: 11_583_000 picoseconds.
+		Weight::from_parts(12_134_000, 3975)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/src/lib.rs b/substrate/frame/src/lib.rs
index 52db7c34bfd..549e177491d 100644
--- a/substrate/frame/src/lib.rs
+++ b/substrate/frame/src/lib.rs
@@ -249,8 +249,8 @@ pub mod runtime {
 
 		/// The block type, which should be fed into [`frame_system::Config`].
 		///
-		/// Should be parameterized with `T: frame_system::Config` and a tuple of `SignedExtension`.
-		/// When in doubt, use [`SystemSignedExtensionsOf`].
+		/// Should be parameterized with `T: frame_system::Config` and a tuple of
+		/// `TransactionExtension`. When in doubt, use [`SystemTransactionExtensionsOf`].
 		// Note that this cannot be dependent on `T` for block-number because it would lead to a
 		// circular dependency (self-referential generics).
 		pub type BlockOf<T, Extra = ()> = generic::Block<HeaderInner, ExtrinsicInner<T, Extra>>;
@@ -264,7 +264,7 @@ pub mod runtime {
 		/// Default set of signed extensions exposed from the `frame_system`.
 		///
 		/// crucially, this does NOT contain any tx-payment extension.
-		pub type SystemSignedExtensionsOf<T> = (
+		pub type SystemTransactionExtensionsOf<T> = (
 			frame_system::CheckNonZeroSender<T>,
 			frame_system::CheckSpecVersion<T>,
 			frame_system::CheckTxVersion<T>,
diff --git a/substrate/frame/staking/src/weights.rs b/substrate/frame/staking/src/weights.rs
index 6f729e08ba5..8288591a787 100644
--- a/substrate/frame/staking/src/weights.rs
+++ b/substrate/frame/staking/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_staking`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-q7z7ruxr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_staking
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_staking
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/staking/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -99,8 +101,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_042_000 picoseconds.
-		Weight::from_parts(43_292_000, 4764)
+		// Minimum execution time: 41_318_000 picoseconds.
+		Weight::from_parts(43_268_000, 4764)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -120,8 +122,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1990`
 		//  Estimated: `8877`
-		// Minimum execution time: 85_050_000 picoseconds.
-		Weight::from_parts(87_567_000, 8877)
+		// Minimum execution time: 85_666_000 picoseconds.
+		Weight::from_parts(88_749_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -147,8 +149,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2195`
 		//  Estimated: `8877`
-		// Minimum execution time: 89_076_000 picoseconds.
-		Weight::from_parts(92_715_000, 8877)
+		// Minimum execution time: 90_282_000 picoseconds.
+		Weight::from_parts(92_332_000, 8877)
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -162,16 +164,18 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Freezes` (r:1 w:0)
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1115`
+		//  Measured:  `1297`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_067_000 picoseconds.
-		Weight::from_parts(43_239_807, 4764)
-			// Standard Error: 831
-			.saturating_add(Weight::from_parts(46_257, 0).saturating_mul(s.into()))
-			.saturating_add(T::DbWeight::get().reads(5_u64))
+		// Minimum execution time: 44_626_000 picoseconds.
+		Weight::from_parts(47_254_657, 4764)
+			// Standard Error: 1_179
+			.saturating_add(Weight::from_parts(57_657, 0).saturating_mul(s.into()))
+			.saturating_add(T::DbWeight::get().reads(6_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:1 w:1)
@@ -207,10 +211,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 86_490_000 picoseconds.
-		Weight::from_parts(95_358_751, 6248)
-			// Standard Error: 3_952
-			.saturating_add(Weight::from_parts(1_294_907, 0).saturating_mul(s.into()))
+		// Minimum execution time: 86_769_000 picoseconds.
+		Weight::from_parts(95_212_867, 6248)
+			// Standard Error: 3_706
+			.saturating_add(Weight::from_parts(1_320_752, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13_u64))
 			.saturating_add(T::DbWeight::get().writes(11_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -242,8 +246,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1372`
 		//  Estimated: `4556`
-		// Minimum execution time: 50_326_000 picoseconds.
-		Weight::from_parts(52_253_000, 4556)
+		// Minimum execution time: 50_410_000 picoseconds.
+		Weight::from_parts(52_576_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(11_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
@@ -256,10 +260,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1280 + k * (569 ±0)`
 		//  Estimated: `4556 + k * (3033 ±0)`
-		// Minimum execution time: 29_305_000 picoseconds.
-		Weight::from_parts(32_199_604, 4556)
-			// Standard Error: 7_150
-			.saturating_add(Weight::from_parts(6_437_124, 0).saturating_mul(k.into()))
+		// Minimum execution time: 29_017_000 picoseconds.
+		Weight::from_parts(33_019_206, 4556)
+			// Standard Error: 6_368
+			.saturating_add(Weight::from_parts(6_158_681, 0).saturating_mul(k.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -292,10 +296,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1866 + n * (102 ±0)`
 		//  Estimated: `6248 + n * (2520 ±0)`
-		// Minimum execution time: 63_267_000 picoseconds.
-		Weight::from_parts(61_741_404, 6248)
-			// Standard Error: 12_955
-			.saturating_add(Weight::from_parts(3_811_743, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_452_000 picoseconds.
+		Weight::from_parts(60_924_066, 6248)
+			// Standard Error: 14_416
+			.saturating_add(Weight::from_parts(3_921_589, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
@@ -319,8 +323,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1650`
 		//  Estimated: `6248`
-		// Minimum execution time: 52_862_000 picoseconds.
-		Weight::from_parts(54_108_000, 6248)
+		// Minimum execution time: 54_253_000 picoseconds.
+		Weight::from_parts(55_286_000, 6248)
 			.saturating_add(T::DbWeight::get().reads(8_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
@@ -334,8 +338,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 16_350_000 picoseconds.
-		Weight::from_parts(16_802_000, 4556)
+		// Minimum execution time: 16_812_000 picoseconds.
+		Weight::from_parts(17_380_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -349,8 +353,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `969`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_981_000 picoseconds.
-		Weight::from_parts(20_539_000, 4556)
+		// Minimum execution time: 20_590_000 picoseconds.
+		Weight::from_parts(21_096_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -362,8 +366,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_304_000 picoseconds.
-		Weight::from_parts(20_000_000, 4556)
+		// Minimum execution time: 19_923_000 picoseconds.
+		Weight::from_parts(20_880_000, 4556)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -373,8 +377,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_568_000 picoseconds.
-		Weight::from_parts(2_708_000, 0)
+		// Minimum execution time: 2_599_000 picoseconds.
+		Weight::from_parts(2_751_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -383,8 +387,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_950_000 picoseconds.
-		Weight::from_parts(8_348_000, 0)
+		// Minimum execution time: 6_941_000 picoseconds.
+		Weight::from_parts(7_288_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -393,8 +397,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_967_000 picoseconds.
-		Weight::from_parts(8_222_000, 0)
+		// Minimum execution time: 6_757_000 picoseconds.
+		Weight::from_parts(7_200_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -403,8 +407,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_006_000 picoseconds.
-		Weight::from_parts(8_440_000, 0)
+		// Minimum execution time: 7_028_000 picoseconds.
+		Weight::from_parts(7_366_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Invulnerables` (r:0 w:1)
@@ -414,10 +418,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_524_000 picoseconds.
-		Weight::from_parts(3_123_608, 0)
-			// Standard Error: 59
-			.saturating_add(Weight::from_parts(11_596, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_741_000 picoseconds.
+		Weight::from_parts(3_212_598, 0)
+			// Standard Error: 68
+			.saturating_add(Weight::from_parts(11_695, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:5900 w:11800)
@@ -431,10 +435,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1356 + i * (151 ±0)`
 		//  Estimated: `990 + i * (3566 ±0)`
-		// Minimum execution time: 2_092_000 picoseconds.
-		Weight::from_parts(2_258_000, 990)
-			// Standard Error: 32_695
-			.saturating_add(Weight::from_parts(16_669_219, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_132_000 picoseconds.
+		Weight::from_parts(2_289_000, 990)
+			// Standard Error: 34_227
+			.saturating_add(Weight::from_parts(17_006_583, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3566).saturating_mul(i.into()))
@@ -472,10 +476,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 84_275_000 picoseconds.
-		Weight::from_parts(92_512_416, 6248)
-			// Standard Error: 3_633
-			.saturating_add(Weight::from_parts(1_315_923, 0).saturating_mul(s.into()))
+		// Minimum execution time: 85_308_000 picoseconds.
+		Weight::from_parts(93_689_468, 6248)
+			// Standard Error: 5_425
+			.saturating_add(Weight::from_parts(1_307_604, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(13_u64))
 			.saturating_add(T::DbWeight::get().writes(12_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -488,10 +492,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `66672`
 		//  Estimated: `70137`
-		// Minimum execution time: 101_707_000 picoseconds.
-		Weight::from_parts(912_819_462, 70137)
-			// Standard Error: 57_547
-			.saturating_add(Weight::from_parts(4_856_799, 0).saturating_mul(s.into()))
+		// Minimum execution time: 103_242_000 picoseconds.
+		Weight::from_parts(1_162_296_080, 70137)
+			// Standard Error: 76_741
+			.saturating_add(Weight::from_parts(6_487_522, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -528,10 +532,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `33297 + n * (377 ±0)`
 		//  Estimated: `30944 + n * (3774 ±0)`
-		// Minimum execution time: 138_657_000 picoseconds.
-		Weight::from_parts(167_173_445, 30944)
-			// Standard Error: 25_130
-			.saturating_add(Weight::from_parts(44_566_012, 0).saturating_mul(n.into()))
+		// Minimum execution time: 140_740_000 picoseconds.
+		Weight::from_parts(182_886_963, 30944)
+			// Standard Error: 39_852
+			.saturating_add(Weight::from_parts(43_140_752, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(14_u64))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
@@ -555,10 +559,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1991 + l * (7 ±0)`
 		//  Estimated: `8877`
-		// Minimum execution time: 80_061_000 picoseconds.
-		Weight::from_parts(82_836_434, 8877)
-			// Standard Error: 4_348
-			.saturating_add(Weight::from_parts(75_744, 0).saturating_mul(l.into()))
+		// Minimum execution time: 80_372_000 picoseconds.
+		Weight::from_parts(83_335_027, 8877)
+			// Standard Error: 4_780
+			.saturating_add(Weight::from_parts(72_180, 0).saturating_mul(l.into()))
 			.saturating_add(T::DbWeight::get().reads(9_u64))
 			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
@@ -593,10 +597,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 92_560_000 picoseconds.
-		Weight::from_parts(97_684_741, 6248)
-			// Standard Error: 3_361
-			.saturating_add(Weight::from_parts(1_292_732, 0).saturating_mul(s.into()))
+		// Minimum execution time: 93_920_000 picoseconds.
+		Weight::from_parts(98_022_911, 6248)
+			// Standard Error: 4_096
+			.saturating_add(Weight::from_parts(1_287_745, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(11_u64))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -642,12 +646,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (720 ±0) + v * (3598 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 564_963_000 picoseconds.
-		Weight::from_parts(569_206_000, 512390)
-			// Standard Error: 2_033_235
-			.saturating_add(Weight::from_parts(68_025_841, 0).saturating_mul(v.into()))
-			// Standard Error: 202_600
-			.saturating_add(Weight::from_parts(17_916_770, 0).saturating_mul(n.into()))
+		// Minimum execution time: 556_012_000 picoseconds.
+		Weight::from_parts(560_339_000, 512390)
+			// Standard Error: 2_115_076
+			.saturating_add(Weight::from_parts(69_456_497, 0).saturating_mul(v.into()))
+			// Standard Error: 210_755
+			.saturating_add(Weight::from_parts(17_974_873, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(206_u64))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -678,12 +682,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3175 + n * (911 ±0) + v * (395 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 32_196_540_000 picoseconds.
-		Weight::from_parts(32_341_871_000, 512390)
-			// Standard Error: 354_657
-			.saturating_add(Weight::from_parts(5_143_440, 0).saturating_mul(v.into()))
-			// Standard Error: 354_657
-			.saturating_add(Weight::from_parts(3_328_189, 0).saturating_mul(n.into()))
+		// Minimum execution time: 32_792_819_000 picoseconds.
+		Weight::from_parts(32_986_606_000, 512390)
+			// Standard Error: 360_905
+			.saturating_add(Weight::from_parts(5_260_151, 0).saturating_mul(v.into()))
+			// Standard Error: 360_905
+			.saturating_add(Weight::from_parts(3_599_219, 0).saturating_mul(n.into()))
 			.saturating_add(T::DbWeight::get().reads(201_u64))
 			.saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -700,10 +704,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `979 + v * (50 ±0)`
 		//  Estimated: `3510 + v * (2520 ±0)`
-		// Minimum execution time: 2_381_903_000 picoseconds.
-		Weight::from_parts(32_693_059, 3510)
-			// Standard Error: 10_000
-			.saturating_add(Weight::from_parts(4_736_173, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_434_755_000 picoseconds.
+		Weight::from_parts(38_574_764, 3510)
+			// Standard Error: 14_467
+			.saturating_add(Weight::from_parts(4_821_702, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into()))
@@ -714,6 +718,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -724,9 +730,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_434_000 picoseconds.
-		Weight::from_parts(5_742_000, 0)
-			.saturating_add(T::DbWeight::get().writes(6_u64))
+		// Minimum execution time: 5_765_000 picoseconds.
+		Weight::from_parts(6_140_000, 0)
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Staking::MinCommission` (r:0 w:1)
 	/// Proof: `Staking::MinCommission` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -734,6 +740,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -744,9 +752,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_588_000 picoseconds.
-		Weight::from_parts(4_854_000, 0)
-			.saturating_add(T::DbWeight::get().writes(6_u64))
+		// Minimum execution time: 5_025_000 picoseconds.
+		Weight::from_parts(5_354_000, 0)
+			.saturating_add(T::DbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Staking::Bonded` (r:1 w:0)
 	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
@@ -774,8 +782,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `1939`
 		//  Estimated: `6248`
-		// Minimum execution time: 68_780_000 picoseconds.
-		Weight::from_parts(71_479_000, 6248)
+		// Minimum execution time: 69_656_000 picoseconds.
+		Weight::from_parts(71_574_000, 6248)
 			.saturating_add(T::DbWeight::get().reads(12_u64))
 			.saturating_add(T::DbWeight::get().writes(6_u64))
 	}
@@ -787,8 +795,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `691`
 		//  Estimated: `3510`
-		// Minimum execution time: 12_268_000 picoseconds.
-		Weight::from_parts(12_661_000, 3510)
+		// Minimum execution time: 12_523_000 picoseconds.
+		Weight::from_parts(13_315_000, 3510)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -798,8 +806,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_071_000 picoseconds.
-		Weight::from_parts(3_334_000, 0)
+		// Minimum execution time: 3_125_000 picoseconds.
+		Weight::from_parts(3_300_000, 0)
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
@@ -820,8 +828,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `927`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_042_000 picoseconds.
-		Weight::from_parts(43_292_000, 4764)
+		// Minimum execution time: 41_318_000 picoseconds.
+		Weight::from_parts(43_268_000, 4764)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -841,8 +849,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1990`
 		//  Estimated: `8877`
-		// Minimum execution time: 85_050_000 picoseconds.
-		Weight::from_parts(87_567_000, 8877)
+		// Minimum execution time: 85_666_000 picoseconds.
+		Weight::from_parts(88_749_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -868,8 +876,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2195`
 		//  Estimated: `8877`
-		// Minimum execution time: 89_076_000 picoseconds.
-		Weight::from_parts(92_715_000, 8877)
+		// Minimum execution time: 90_282_000 picoseconds.
+		Weight::from_parts(92_332_000, 8877)
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -883,16 +891,18 @@ impl WeightInfo for () {
 	/// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Freezes` (r:1 w:0)
 	/// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`)
+	/// Storage: `NominationPools::ReversePoolIdLookup` (r:1 w:0)
+	/// Proof: `NominationPools::ReversePoolIdLookup` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
 	/// The range of component `s` is `[0, 100]`.
 	fn withdraw_unbonded_update(s: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1115`
+		//  Measured:  `1297`
 		//  Estimated: `4764`
-		// Minimum execution time: 42_067_000 picoseconds.
-		Weight::from_parts(43_239_807, 4764)
-			// Standard Error: 831
-			.saturating_add(Weight::from_parts(46_257, 0).saturating_mul(s.into()))
-			.saturating_add(RocksDbWeight::get().reads(5_u64))
+		// Minimum execution time: 44_626_000 picoseconds.
+		Weight::from_parts(47_254_657, 4764)
+			// Standard Error: 1_179
+			.saturating_add(Weight::from_parts(57_657, 0).saturating_mul(s.into()))
+			.saturating_add(RocksDbWeight::get().reads(6_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:1 w:1)
@@ -928,10 +938,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 86_490_000 picoseconds.
-		Weight::from_parts(95_358_751, 6248)
-			// Standard Error: 3_952
-			.saturating_add(Weight::from_parts(1_294_907, 0).saturating_mul(s.into()))
+		// Minimum execution time: 86_769_000 picoseconds.
+		Weight::from_parts(95_212_867, 6248)
+			// Standard Error: 3_706
+			.saturating_add(Weight::from_parts(1_320_752, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(13_u64))
 			.saturating_add(RocksDbWeight::get().writes(11_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -963,8 +973,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1372`
 		//  Estimated: `4556`
-		// Minimum execution time: 50_326_000 picoseconds.
-		Weight::from_parts(52_253_000, 4556)
+		// Minimum execution time: 50_410_000 picoseconds.
+		Weight::from_parts(52_576_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(11_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
@@ -977,10 +987,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1280 + k * (569 ±0)`
 		//  Estimated: `4556 + k * (3033 ±0)`
-		// Minimum execution time: 29_305_000 picoseconds.
-		Weight::from_parts(32_199_604, 4556)
-			// Standard Error: 7_150
-			.saturating_add(Weight::from_parts(6_437_124, 0).saturating_mul(k.into()))
+		// Minimum execution time: 29_017_000 picoseconds.
+		Weight::from_parts(33_019_206, 4556)
+			// Standard Error: 6_368
+			.saturating_add(Weight::from_parts(6_158_681, 0).saturating_mul(k.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into())))
@@ -1013,10 +1023,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1866 + n * (102 ±0)`
 		//  Estimated: `6248 + n * (2520 ±0)`
-		// Minimum execution time: 63_267_000 picoseconds.
-		Weight::from_parts(61_741_404, 6248)
-			// Standard Error: 12_955
-			.saturating_add(Weight::from_parts(3_811_743, 0).saturating_mul(n.into()))
+		// Minimum execution time: 63_452_000 picoseconds.
+		Weight::from_parts(60_924_066, 6248)
+			// Standard Error: 14_416
+			.saturating_add(Weight::from_parts(3_921_589, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
@@ -1040,8 +1050,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1650`
 		//  Estimated: `6248`
-		// Minimum execution time: 52_862_000 picoseconds.
-		Weight::from_parts(54_108_000, 6248)
+		// Minimum execution time: 54_253_000 picoseconds.
+		Weight::from_parts(55_286_000, 6248)
 			.saturating_add(RocksDbWeight::get().reads(8_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
@@ -1055,8 +1065,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 16_350_000 picoseconds.
-		Weight::from_parts(16_802_000, 4556)
+		// Minimum execution time: 16_812_000 picoseconds.
+		Weight::from_parts(17_380_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1070,8 +1080,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `969`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_981_000 picoseconds.
-		Weight::from_parts(20_539_000, 4556)
+		// Minimum execution time: 20_590_000 picoseconds.
+		Weight::from_parts(21_096_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1083,8 +1093,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `902`
 		//  Estimated: `4556`
-		// Minimum execution time: 19_304_000 picoseconds.
-		Weight::from_parts(20_000_000, 4556)
+		// Minimum execution time: 19_923_000 picoseconds.
+		Weight::from_parts(20_880_000, 4556)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -1094,8 +1104,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_568_000 picoseconds.
-		Weight::from_parts(2_708_000, 0)
+		// Minimum execution time: 2_599_000 picoseconds.
+		Weight::from_parts(2_751_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1104,8 +1114,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_950_000 picoseconds.
-		Weight::from_parts(8_348_000, 0)
+		// Minimum execution time: 6_941_000 picoseconds.
+		Weight::from_parts(7_288_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1114,8 +1124,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 7_967_000 picoseconds.
-		Weight::from_parts(8_222_000, 0)
+		// Minimum execution time: 6_757_000 picoseconds.
+		Weight::from_parts(7_200_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::ForceEra` (r:0 w:1)
@@ -1124,8 +1134,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_006_000 picoseconds.
-		Weight::from_parts(8_440_000, 0)
+		// Minimum execution time: 7_028_000 picoseconds.
+		Weight::from_parts(7_366_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Invulnerables` (r:0 w:1)
@@ -1135,10 +1145,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_524_000 picoseconds.
-		Weight::from_parts(3_123_608, 0)
-			// Standard Error: 59
-			.saturating_add(Weight::from_parts(11_596, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_741_000 picoseconds.
+		Weight::from_parts(3_212_598, 0)
+			// Standard Error: 68
+			.saturating_add(Weight::from_parts(11_695, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `Staking::Ledger` (r:5900 w:11800)
@@ -1152,10 +1162,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1356 + i * (151 ±0)`
 		//  Estimated: `990 + i * (3566 ±0)`
-		// Minimum execution time: 2_092_000 picoseconds.
-		Weight::from_parts(2_258_000, 990)
-			// Standard Error: 32_695
-			.saturating_add(Weight::from_parts(16_669_219, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_132_000 picoseconds.
+		Weight::from_parts(2_289_000, 990)
+			// Standard Error: 34_227
+			.saturating_add(Weight::from_parts(17_006_583, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 3566).saturating_mul(i.into()))
@@ -1193,10 +1203,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 84_275_000 picoseconds.
-		Weight::from_parts(92_512_416, 6248)
-			// Standard Error: 3_633
-			.saturating_add(Weight::from_parts(1_315_923, 0).saturating_mul(s.into()))
+		// Minimum execution time: 85_308_000 picoseconds.
+		Weight::from_parts(93_689_468, 6248)
+			// Standard Error: 5_425
+			.saturating_add(Weight::from_parts(1_307_604, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(13_u64))
 			.saturating_add(RocksDbWeight::get().writes(12_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -1209,10 +1219,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `66672`
 		//  Estimated: `70137`
-		// Minimum execution time: 101_707_000 picoseconds.
-		Weight::from_parts(912_819_462, 70137)
-			// Standard Error: 57_547
-			.saturating_add(Weight::from_parts(4_856_799, 0).saturating_mul(s.into()))
+		// Minimum execution time: 103_242_000 picoseconds.
+		Weight::from_parts(1_162_296_080, 70137)
+			// Standard Error: 76_741
+			.saturating_add(Weight::from_parts(6_487_522, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1249,10 +1259,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `33297 + n * (377 ±0)`
 		//  Estimated: `30944 + n * (3774 ±0)`
-		// Minimum execution time: 138_657_000 picoseconds.
-		Weight::from_parts(167_173_445, 30944)
-			// Standard Error: 25_130
-			.saturating_add(Weight::from_parts(44_566_012, 0).saturating_mul(n.into()))
+		// Minimum execution time: 140_740_000 picoseconds.
+		Weight::from_parts(182_886_963, 30944)
+			// Standard Error: 39_852
+			.saturating_add(Weight::from_parts(43_140_752, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(14_u64))
 			.saturating_add(RocksDbWeight::get().reads((6_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
@@ -1276,10 +1286,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1991 + l * (7 ±0)`
 		//  Estimated: `8877`
-		// Minimum execution time: 80_061_000 picoseconds.
-		Weight::from_parts(82_836_434, 8877)
-			// Standard Error: 4_348
-			.saturating_add(Weight::from_parts(75_744, 0).saturating_mul(l.into()))
+		// Minimum execution time: 80_372_000 picoseconds.
+		Weight::from_parts(83_335_027, 8877)
+			// Standard Error: 4_780
+			.saturating_add(Weight::from_parts(72_180, 0).saturating_mul(l.into()))
 			.saturating_add(RocksDbWeight::get().reads(9_u64))
 			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
@@ -1314,10 +1324,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `2196 + s * (4 ±0)`
 		//  Estimated: `6248 + s * (4 ±0)`
-		// Minimum execution time: 92_560_000 picoseconds.
-		Weight::from_parts(97_684_741, 6248)
-			// Standard Error: 3_361
-			.saturating_add(Weight::from_parts(1_292_732, 0).saturating_mul(s.into()))
+		// Minimum execution time: 93_920_000 picoseconds.
+		Weight::from_parts(98_022_911, 6248)
+			// Standard Error: 4_096
+			.saturating_add(Weight::from_parts(1_287_745, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(11_u64))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(s.into())))
@@ -1363,12 +1373,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + n * (720 ±0) + v * (3598 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 564_963_000 picoseconds.
-		Weight::from_parts(569_206_000, 512390)
-			// Standard Error: 2_033_235
-			.saturating_add(Weight::from_parts(68_025_841, 0).saturating_mul(v.into()))
-			// Standard Error: 202_600
-			.saturating_add(Weight::from_parts(17_916_770, 0).saturating_mul(n.into()))
+		// Minimum execution time: 556_012_000 picoseconds.
+		Weight::from_parts(560_339_000, 512390)
+			// Standard Error: 2_115_076
+			.saturating_add(Weight::from_parts(69_456_497, 0).saturating_mul(v.into()))
+			// Standard Error: 210_755
+			.saturating_add(Weight::from_parts(17_974_873, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(206_u64))
 			.saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -1399,12 +1409,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3175 + n * (911 ±0) + v * (395 ±0)`
 		//  Estimated: `512390 + n * (3566 ±0) + v * (3566 ±0)`
-		// Minimum execution time: 32_196_540_000 picoseconds.
-		Weight::from_parts(32_341_871_000, 512390)
-			// Standard Error: 354_657
-			.saturating_add(Weight::from_parts(5_143_440, 0).saturating_mul(v.into()))
-			// Standard Error: 354_657
-			.saturating_add(Weight::from_parts(3_328_189, 0).saturating_mul(n.into()))
+		// Minimum execution time: 32_792_819_000 picoseconds.
+		Weight::from_parts(32_986_606_000, 512390)
+			// Standard Error: 360_905
+			.saturating_add(Weight::from_parts(5_260_151, 0).saturating_mul(v.into()))
+			// Standard Error: 360_905
+			.saturating_add(Weight::from_parts(3_599_219, 0).saturating_mul(n.into()))
 			.saturating_add(RocksDbWeight::get().reads(201_u64))
 			.saturating_add(RocksDbWeight::get().reads((5_u64).saturating_mul(v.into())))
 			.saturating_add(RocksDbWeight::get().reads((4_u64).saturating_mul(n.into())))
@@ -1421,10 +1431,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `979 + v * (50 ±0)`
 		//  Estimated: `3510 + v * (2520 ±0)`
-		// Minimum execution time: 2_381_903_000 picoseconds.
-		Weight::from_parts(32_693_059, 3510)
-			// Standard Error: 10_000
-			.saturating_add(Weight::from_parts(4_736_173, 0).saturating_mul(v.into()))
+		// Minimum execution time: 2_434_755_000 picoseconds.
+		Weight::from_parts(38_574_764, 3510)
+			// Standard Error: 14_467
+			.saturating_add(Weight::from_parts(4_821_702, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(v.into())))
 			.saturating_add(Weight::from_parts(0, 2520).saturating_mul(v.into()))
@@ -1435,6 +1445,8 @@ impl WeightInfo for () {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -1445,9 +1457,9 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_434_000 picoseconds.
-		Weight::from_parts(5_742_000, 0)
-			.saturating_add(RocksDbWeight::get().writes(6_u64))
+		// Minimum execution time: 5_765_000 picoseconds.
+		Weight::from_parts(6_140_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Staking::MinCommission` (r:0 w:1)
 	/// Proof: `Staking::MinCommission` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -1455,6 +1467,8 @@ impl WeightInfo for () {
 	/// Proof: `Staking::MinValidatorBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxValidatorsCount` (r:0 w:1)
 	/// Proof: `Staking::MaxValidatorsCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Staking::MaxStakedRewards` (r:0 w:1)
+	/// Proof: `Staking::MaxStakedRewards` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::ChillThreshold` (r:0 w:1)
 	/// Proof: `Staking::ChillThreshold` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
 	/// Storage: `Staking::MaxNominatorsCount` (r:0 w:1)
@@ -1465,9 +1479,9 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 4_588_000 picoseconds.
-		Weight::from_parts(4_854_000, 0)
-			.saturating_add(RocksDbWeight::get().writes(6_u64))
+		// Minimum execution time: 5_025_000 picoseconds.
+		Weight::from_parts(5_354_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(7_u64))
 	}
 	/// Storage: `Staking::Bonded` (r:1 w:0)
 	/// Proof: `Staking::Bonded` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`)
@@ -1495,8 +1509,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `1939`
 		//  Estimated: `6248`
-		// Minimum execution time: 68_780_000 picoseconds.
-		Weight::from_parts(71_479_000, 6248)
+		// Minimum execution time: 69_656_000 picoseconds.
+		Weight::from_parts(71_574_000, 6248)
 			.saturating_add(RocksDbWeight::get().reads(12_u64))
 			.saturating_add(RocksDbWeight::get().writes(6_u64))
 	}
@@ -1508,8 +1522,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `691`
 		//  Estimated: `3510`
-		// Minimum execution time: 12_268_000 picoseconds.
-		Weight::from_parts(12_661_000, 3510)
+		// Minimum execution time: 12_523_000 picoseconds.
+		Weight::from_parts(13_315_000, 3510)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -1519,8 +1533,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_071_000 picoseconds.
-		Weight::from_parts(3_334_000, 0)
+		// Minimum execution time: 3_125_000 picoseconds.
+		Weight::from_parts(3_300_000, 0)
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 }
diff --git a/substrate/frame/state-trie-migration/src/lib.rs b/substrate/frame/state-trie-migration/src/lib.rs
index 6b3aa9934e0..b89159ef3ec 100644
--- a/substrate/frame/state-trie-migration/src/lib.rs
+++ b/substrate/frame/state-trie-migration/src/lib.rs
@@ -1801,7 +1801,7 @@ mod remote_tests_local {
 	use std::env::var as env_var;
 
 	// we only use the hash type from this, so using the mock should be fine.
-	type Extrinsic = sp_runtime::testing::TestXt<MockCall, ()>;
+	type Extrinsic = sp_runtime::generic::UncheckedExtrinsic<u64, MockCall, (), ()>;
 	type Block = sp_runtime::testing::Block<Extrinsic>;
 
 	#[tokio::test]
diff --git a/substrate/frame/state-trie-migration/src/weights.rs b/substrate/frame/state-trie-migration/src/weights.rs
index 8fa80b38957..23dad9e3380 100644
--- a/substrate/frame/state-trie-migration/src/weights.rs
+++ b/substrate/frame/state-trie-migration/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_state_trie_migration`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2024-01-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-grjcggob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_state_trie_migration
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_state_trie_migration
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/state-trie-migration/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -64,15 +66,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `StateTrieMigration::SignedMigrationMaxLimits` (r:1 w:0)
 	/// Proof: `StateTrieMigration::SignedMigrationMaxLimits` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `StateTrieMigration::MigrationProcess` (r:1 w:1)
 	/// Proof: `StateTrieMigration::MigrationProcess` (`max_values`: Some(1), `max_size`: Some(1042), added: 1537, mode: `MaxEncodedLen`)
 	fn continue_migrate() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
-		//  Estimated: `3640`
-		// Minimum execution time: 18_520_000 picoseconds.
-		Weight::from_parts(19_171_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 17_661_000 picoseconds.
+		Weight::from_parts(18_077_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -82,53 +84,53 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `1493`
-		// Minimum execution time: 3_786_000 picoseconds.
-		Weight::from_parts(4_038_000, 1493)
+		// Minimum execution time: 4_036_000 picoseconds.
+		Weight::from_parts(4_267_000, 1493)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn migrate_custom_top_success() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
-		//  Estimated: `3640`
-		// Minimum execution time: 11_144_000 picoseconds.
-		Weight::from_parts(11_556_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 11_348_000 picoseconds.
+		Weight::from_parts(11_899_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	fn migrate_custom_top_fail() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `113`
-		//  Estimated: `3640`
-		// Minimum execution time: 59_288_000 picoseconds.
-		Weight::from_parts(60_276_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 59_819_000 picoseconds.
+		Weight::from_parts(61_066_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn migrate_custom_child_success() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
-		//  Estimated: `3640`
-		// Minimum execution time: 11_258_000 picoseconds.
-		Weight::from_parts(11_626_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 11_424_000 picoseconds.
+		Weight::from_parts(11_765_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	fn migrate_custom_child_fail() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
-		//  Estimated: `3640`
-		// Minimum execution time: 61_575_000 picoseconds.
-		Weight::from_parts(63_454_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 61_086_000 picoseconds.
+		Weight::from_parts(62_546_000, 3658)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -139,10 +141,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `197 + v * (1 ±0)`
 		//  Estimated: `3662 + v * (1 ±0)`
-		// Minimum execution time: 5_259_000 picoseconds.
-		Weight::from_parts(5_433_000, 3662)
+		// Minimum execution time: 5_375_000 picoseconds.
+		Weight::from_parts(5_552_000, 3662)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_159, 0).saturating_mul(v.into()))
+			.saturating_add(Weight::from_parts(1_146, 0).saturating_mul(v.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(v.into()))
@@ -154,15 +156,15 @@ impl WeightInfo for () {
 	/// Storage: `StateTrieMigration::SignedMigrationMaxLimits` (r:1 w:0)
 	/// Proof: `StateTrieMigration::SignedMigrationMaxLimits` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: `StateTrieMigration::MigrationProcess` (r:1 w:1)
 	/// Proof: `StateTrieMigration::MigrationProcess` (`max_values`: Some(1), `max_size`: Some(1042), added: 1537, mode: `MaxEncodedLen`)
 	fn continue_migrate() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
-		//  Estimated: `3640`
-		// Minimum execution time: 18_520_000 picoseconds.
-		Weight::from_parts(19_171_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 17_661_000 picoseconds.
+		Weight::from_parts(18_077_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -172,53 +174,53 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `1493`
-		// Minimum execution time: 3_786_000 picoseconds.
-		Weight::from_parts(4_038_000, 1493)
+		// Minimum execution time: 4_036_000 picoseconds.
+		Weight::from_parts(4_267_000, 1493)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn migrate_custom_top_success() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
-		//  Estimated: `3640`
-		// Minimum execution time: 11_144_000 picoseconds.
-		Weight::from_parts(11_556_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 11_348_000 picoseconds.
+		Weight::from_parts(11_899_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	fn migrate_custom_top_fail() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `113`
-		//  Estimated: `3640`
-		// Minimum execution time: 59_288_000 picoseconds.
-		Weight::from_parts(60_276_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 59_819_000 picoseconds.
+		Weight::from_parts(61_066_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:0)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	fn migrate_custom_child_success() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
-		//  Estimated: `3640`
-		// Minimum execution time: 11_258_000 picoseconds.
-		Weight::from_parts(11_626_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 11_424_000 picoseconds.
+		Weight::from_parts(11_765_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Balances::Holds` (r:1 w:1)
-	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(175), added: 2650, mode: `MaxEncodedLen`)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
 	/// Storage: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	/// Proof: UNKNOWN KEY `0x666f6f` (r:1 w:1)
 	fn migrate_custom_child_fail() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
-		//  Estimated: `3640`
-		// Minimum execution time: 61_575_000 picoseconds.
-		Weight::from_parts(63_454_000, 3640)
+		//  Estimated: `3658`
+		// Minimum execution time: 61_086_000 picoseconds.
+		Weight::from_parts(62_546_000, 3658)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -229,10 +231,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `197 + v * (1 ±0)`
 		//  Estimated: `3662 + v * (1 ±0)`
-		// Minimum execution time: 5_259_000 picoseconds.
-		Weight::from_parts(5_433_000, 3662)
+		// Minimum execution time: 5_375_000 picoseconds.
+		Weight::from_parts(5_552_000, 3662)
 			// Standard Error: 1
-			.saturating_add(Weight::from_parts(1_159, 0).saturating_mul(v.into()))
+			.saturating_add(Weight::from_parts(1_146, 0).saturating_mul(v.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(v.into()))
diff --git a/substrate/frame/sudo/src/benchmarking.rs b/substrate/frame/sudo/src/benchmarking.rs
index e64233fe748..cdd7d707600 100644
--- a/substrate/frame/sudo/src/benchmarking.rs
+++ b/substrate/frame/sudo/src/benchmarking.rs
@@ -20,14 +20,23 @@
 use super::*;
 use crate::Pallet;
 use frame_benchmarking::v2::*;
+use frame_support::dispatch::DispatchInfo;
 use frame_system::RawOrigin;
+use sp_runtime::traits::{AsSystemOriginSigner, DispatchTransaction, Dispatchable};
 
 fn assert_last_event<T: Config>(generic_event: crate::Event<T>) {
 	let re: <T as Config>::RuntimeEvent = generic_event.into();
 	frame_system::Pallet::<T>::assert_last_event(re.into());
 }
 
-#[benchmarks(where <T as Config>::RuntimeCall: From<frame_system::Call<T>>)]
+#[benchmarks(where
+	T: Send + Sync,
+	<T as Config>::RuntimeCall: From<frame_system::Call<T>>,
+	<T as frame_system::Config>::RuntimeCall: Dispatchable<Info = DispatchInfo>,
+	<<T as frame_system::Config>::RuntimeCall as Dispatchable>::PostInfo: From<()>,
+	<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin:
+		AsSystemOriginSigner<T::AccountId> + Clone,
+)]
 mod benchmarks {
 	use super::*;
 
@@ -85,5 +94,23 @@ mod benchmarks {
 		assert_last_event::<T>(Event::KeyRemoved {});
 	}
 
+	#[benchmark]
+	fn check_only_sudo_account() {
+		let caller: T::AccountId = whitelisted_caller();
+		Key::<T>::put(&caller);
+
+		let call = frame_system::Call::remark { remark: vec![] }.into();
+		let info = DispatchInfo { ..Default::default() };
+		let ext = CheckOnlySudoAccount::<T>::new();
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, 0, |_| Ok(().into()))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
 	impl_benchmark_test_suite!(Pallet, crate::mock::new_bench_ext(), crate::mock::Test);
 }
diff --git a/substrate/frame/sudo/src/extension.rs b/substrate/frame/sudo/src/extension.rs
index e90286e5a7c..2cd8f945edd 100644
--- a/substrate/frame/sudo/src/extension.rs
+++ b/substrate/frame/sudo/src/extension.rs
@@ -20,10 +20,14 @@ use codec::{Decode, Encode};
 use frame_support::{dispatch::DispatchInfo, ensure};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, SignedExtension},
+	impl_tx_ext_default,
+	traits::{
+		AsSystemOriginSigner, DispatchInfoOf, Dispatchable, TransactionExtension,
+		TransactionExtensionBase,
+	},
 	transaction_validity::{
-		InvalidTransaction, TransactionPriority, TransactionValidity, TransactionValidityError,
-		UnknownTransaction, ValidTransaction,
+		InvalidTransaction, TransactionPriority, TransactionValidityError, UnknownTransaction,
+		ValidTransaction,
 	},
 };
 use sp_std::{fmt, marker::PhantomData};
@@ -59,49 +63,61 @@ impl<T: Config + Send + Sync> fmt::Debug for CheckOnlySudoAccount<T> {
 }
 
 impl<T: Config + Send + Sync> CheckOnlySudoAccount<T> {
-	/// Creates new `SignedExtension` to check sudo key.
+	/// Creates new `TransactionExtension` to check sudo key.
 	pub fn new() -> Self {
 		Self::default()
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckOnlySudoAccount<T>
-where
-	<T as Config>::RuntimeCall: Dispatchable<Info = DispatchInfo>,
-{
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckOnlySudoAccount<T> {
 	const IDENTIFIER: &'static str = "CheckOnlySudoAccount";
-	type AccountId = T::AccountId;
-	type Call = <T as Config>::RuntimeCall;
-	type AdditionalSigned = ();
-	type Pre = ();
+	type Implicit = ();
 
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
-		Ok(())
+	fn weight(&self) -> frame_support::weights::Weight {
+		use crate::weights::WeightInfo;
+		T::WeightInfo::check_only_sudo_account()
 	}
+}
+impl<T: Config + Send + Sync, Context>
+	TransactionExtension<<T as frame_system::Config>::RuntimeCall, Context> for CheckOnlySudoAccount<T>
+where
+	<T as frame_system::Config>::RuntimeCall: Dispatchable<Info = DispatchInfo>,
+	<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin:
+		AsSystemOriginSigner<T::AccountId> + Clone,
+{
+	type Pre = ();
+	type Val = ();
 
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		_call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		origin: <<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		_call: &<T as frame_system::Config>::RuntimeCall,
+		info: &DispatchInfoOf<<T as frame_system::Config>::RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> Result<
+		(
+			ValidTransaction,
+			Self::Val,
+			<<T as frame_system::Config>::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		),
+		TransactionValidityError,
+	> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
 		let sudo_key: T::AccountId = Key::<T>::get().ok_or(UnknownTransaction::CannotLookup)?;
 		ensure!(*who == sudo_key, InvalidTransaction::BadSigner);
 
-		Ok(ValidTransaction {
-			priority: info.weight.ref_time() as TransactionPriority,
-			..Default::default()
-		})
+		Ok((
+			ValidTransaction {
+				priority: info.weight.ref_time() as TransactionPriority,
+				..Default::default()
+			},
+			(),
+			origin,
+		))
 	}
 
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
+	impl_tx_ext_default!(<T as frame_system::Config>::RuntimeCall; Context; prepare);
 }
diff --git a/substrate/frame/sudo/src/lib.rs b/substrate/frame/sudo/src/lib.rs
index 2ebe4cb0157..2c953368b22 100644
--- a/substrate/frame/sudo/src/lib.rs
+++ b/substrate/frame/sudo/src/lib.rs
@@ -85,8 +85,8 @@
 //! meant to be used by constructing runtime calls from outside the runtime.
 //! </pre></div>
 //!
-//! This pallet also defines a [`SignedExtension`](sp_runtime::traits::SignedExtension) called
-//! [`CheckOnlySudoAccount`] to ensure that only signed transactions by the sudo account are
+//! This pallet also defines a [`TransactionExtension`](sp_runtime::traits::TransactionExtension)
+//! called [`CheckOnlySudoAccount`] to ensure that only signed transactions by the sudo account are
 //! accepted by the transaction pool. The intended use of this signed extension is to prevent other
 //! accounts from spamming the transaction pool for the initial phase of a chain, during which
 //! developers may only want a sudo account to be able to make transactions.
diff --git a/substrate/frame/sudo/src/weights.rs b/substrate/frame/sudo/src/weights.rs
index 10d1a9f7a51..aa8f69fd4e6 100644
--- a/substrate/frame/sudo/src/weights.rs
+++ b/substrate/frame/sudo/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_sudo`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_sudo
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_sudo
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/sudo/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -53,6 +55,7 @@ pub trait WeightInfo {
 	fn sudo() -> Weight;
 	fn sudo_as() -> Weight;
 	fn remove_key() -> Weight;
+	fn check_only_sudo_account() -> Weight;
 }
 
 /// Weights for `pallet_sudo` using the Substrate node and recommended hardware.
@@ -64,8 +67,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_600_000 picoseconds.
-		Weight::from_parts(10_076_000, 1517)
+		// Minimum execution time: 9_590_000 picoseconds.
+		Weight::from_parts(9_924_000, 1517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -75,8 +78,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 10_453_000 picoseconds.
-		Weight::from_parts(10_931_000, 1517)
+		// Minimum execution time: 9_825_000 picoseconds.
+		Weight::from_parts(10_373_000, 1517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Sudo::Key` (r:1 w:0)
@@ -85,8 +88,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 10_202_000 picoseconds.
-		Weight::from_parts(10_800_000, 1517)
+		// Minimum execution time: 10_140_000 picoseconds.
+		Weight::from_parts(10_382_000, 1517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Sudo::Key` (r:1 w:1)
@@ -95,11 +98,21 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_555_000 picoseconds.
-		Weight::from_parts(8_846_000, 1517)
+		// Minimum execution time: 8_610_000 picoseconds.
+		Weight::from_parts(8_975_000, 1517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
+	/// Storage: `Sudo::Key` (r:1 w:0)
+	/// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	fn check_only_sudo_account() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `165`
+		//  Estimated: `1517`
+		// Minimum execution time: 3_416_000 picoseconds.
+		Weight::from_parts(3_645_000, 1517)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+	}
 }
 
 // For backwards compatibility and tests.
@@ -110,8 +123,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 9_600_000 picoseconds.
-		Weight::from_parts(10_076_000, 1517)
+		// Minimum execution time: 9_590_000 picoseconds.
+		Weight::from_parts(9_924_000, 1517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -121,8 +134,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 10_453_000 picoseconds.
-		Weight::from_parts(10_931_000, 1517)
+		// Minimum execution time: 9_825_000 picoseconds.
+		Weight::from_parts(10_373_000, 1517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Sudo::Key` (r:1 w:0)
@@ -131,8 +144,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 10_202_000 picoseconds.
-		Weight::from_parts(10_800_000, 1517)
+		// Minimum execution time: 10_140_000 picoseconds.
+		Weight::from_parts(10_382_000, 1517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 	}
 	/// Storage: `Sudo::Key` (r:1 w:1)
@@ -141,9 +154,19 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `165`
 		//  Estimated: `1517`
-		// Minimum execution time: 8_555_000 picoseconds.
-		Weight::from_parts(8_846_000, 1517)
+		// Minimum execution time: 8_610_000 picoseconds.
+		Weight::from_parts(8_975_000, 1517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
+	/// Storage: `Sudo::Key` (r:1 w:0)
+	/// Proof: `Sudo::Key` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	fn check_only_sudo_account() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `165`
+		//  Estimated: `1517`
+		// Minimum execution time: 3_416_000 picoseconds.
+		Weight::from_parts(3_645_000, 1517)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+	}
 }
diff --git a/substrate/frame/support/Cargo.toml b/substrate/frame/support/Cargo.toml
index fb9cb3d4511..113af41751e 100644
--- a/substrate/frame/support/Cargo.toml
+++ b/substrate/frame/support/Cargo.toml
@@ -95,9 +95,9 @@ std = [
 	"sp-staking/std",
 	"sp-state-machine/std",
 	"sp-std/std",
+	"sp-timestamp/std",
 	"sp-tracing/std",
 	"sp-weights/std",
-	"sp-timestamp/std"
 ]
 runtime-benchmarks = [
 	"frame-system/runtime-benchmarks",
diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs
index da483fa6cf0..d21cfef4a92 100644
--- a/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs
+++ b/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs
@@ -73,11 +73,9 @@ pub fn expand_outer_inherent(
 				#(
 					#pallet_attrs
 					if let Some(inherent) = #pallet_names::create_inherent(self) {
-						let inherent = <#unchecked_extrinsic as #scrate::sp_runtime::traits::Extrinsic>::new(
+						let inherent = <#unchecked_extrinsic as #scrate::sp_runtime::traits::Extrinsic>::new_inherent(
 							inherent.into(),
-							None,
-						).expect("Runtime UncheckedExtrinsic is not Opaque, so it has to return \
-							`Some`; qed");
+						);
 
 						inherents.push(inherent);
 					}
@@ -123,7 +121,7 @@ pub fn expand_outer_inherent(
 				for xt in block.extrinsics() {
 					// Inherents are before any other extrinsics.
 					// And signed extrinsics are not inherents.
-					if #scrate::sp_runtime::traits::Extrinsic::is_signed(xt).unwrap_or(false) {
+					if !(#scrate::sp_runtime::traits::Extrinsic::is_bare(xt)) {
 						break
 					}
 
@@ -161,10 +159,9 @@ pub fn expand_outer_inherent(
 					match #pallet_names::is_inherent_required(self) {
 						Ok(Some(e)) => {
 							let found = block.extrinsics().iter().any(|xt| {
-								let is_signed = #scrate::sp_runtime::traits::Extrinsic::is_signed(xt)
-									.unwrap_or(false);
+								let is_bare = #scrate::sp_runtime::traits::Extrinsic::is_bare(xt);
 
-								if !is_signed {
+								if is_bare {
 									let call = <
 										#unchecked_extrinsic as ExtrinsicCall
 									>::call(xt);
@@ -209,8 +206,9 @@ pub fn expand_outer_inherent(
 				use #scrate::inherent::ProvideInherent;
 				use #scrate::traits::{IsSubType, ExtrinsicCall};
 
-				if #scrate::sp_runtime::traits::Extrinsic::is_signed(ext).unwrap_or(false) {
-					// Signed extrinsics are never inherents.
+				let is_bare = #scrate::sp_runtime::traits::Extrinsic::is_bare(ext);
+				if !is_bare {
+					// Signed extrinsics are not inherents.
 					return false
 				}
 
diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs
index 0e76f9a9246..f55ca677d89 100644
--- a/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs
+++ b/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs
@@ -119,13 +119,13 @@ pub fn expand_runtime_metadata(
 						call_ty,
 						signature_ty,
 						extra_ty,
-						signed_extensions: <
+						extensions: <
 								<
 									#extrinsic as #scrate::sp_runtime::traits::ExtrinsicMetadata
-								>::SignedExtensions as #scrate::sp_runtime::traits::SignedExtension
+								>::Extra as #scrate::sp_runtime::traits::TransactionExtensionBase
 							>::metadata()
 								.into_iter()
-								.map(|meta| #scrate::__private::metadata_ir::SignedExtensionMetadataIR {
+								.map(|meta| #scrate::__private::metadata_ir::TransactionExtensionMetadataIR {
 									identifier: meta.identifier,
 									ty: meta.ty,
 									additional_signed: meta.additional_signed,
diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs
index 83049919d01..341621deb09 100644
--- a/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs
+++ b/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs
@@ -153,6 +153,10 @@ pub fn expand_outer_origin(
 				self.filter = #scrate::__private::sp_std::rc::Rc::new(Box::new(filter));
 			}
 
+			fn set_caller(&mut self, caller: OriginCaller) {
+				self.caller = caller;
+			}
+
 			fn set_caller_from(&mut self, other: impl Into<Self>) {
 				self.caller = other.into().caller;
 			}
@@ -301,6 +305,16 @@ pub fn expand_outer_origin(
 			}
 		}
 
+		impl #scrate::__private::AsSystemOriginSigner<<#runtime as #system_path::Config>::AccountId> for RuntimeOrigin {
+			fn as_system_origin_signer(&self) -> Option<&<#runtime as #system_path::Config>::AccountId> {
+				if let OriginCaller::system(#system_path::Origin::<#runtime>::Signed(ref signed)) = &self.caller {
+					Some(signed)
+				} else {
+					None
+				}
+			}
+		}
+
 		#pallet_conversions
 	})
 }
diff --git a/substrate/frame/support/src/dispatch.rs b/substrate/frame/support/src/dispatch.rs
index 4a313551aca..61787a74012 100644
--- a/substrate/frame/support/src/dispatch.rs
+++ b/substrate/frame/support/src/dispatch.rs
@@ -25,7 +25,7 @@ use scale_info::TypeInfo;
 use serde::{Deserialize, Serialize};
 use sp_runtime::{
 	generic::{CheckedExtrinsic, UncheckedExtrinsic},
-	traits::SignedExtension,
+	traits::Dispatchable,
 	DispatchError, RuntimeDebug,
 };
 use sp_std::fmt;
@@ -268,7 +268,8 @@ pub fn extract_actual_weight(result: &DispatchResultWithPostInfo, info: &Dispatc
 	.calc_actual_weight(info)
 }
 
-/// Extract the actual pays_fee from a dispatch result if any or fall back to the default weight.
+/// Extract the actual pays_fee from a dispatch result if any or fall back to the default
+/// weight.
 pub fn extract_actual_pays_fee(result: &DispatchResultWithPostInfo, info: &DispatchInfo) -> Pays {
 	match result {
 		Ok(post_info) => post_info,
@@ -368,11 +369,10 @@ where
 }
 
 /// Implementation for unchecked extrinsic.
-impl<Address, Call, Signature, Extra> GetDispatchInfo
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address, Call, Signature, Extension> GetDispatchInfo
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 where
-	Call: GetDispatchInfo,
-	Extra: SignedExtension,
+	Call: GetDispatchInfo + Dispatchable,
 {
 	fn get_dispatch_info(&self) -> DispatchInfo {
 		self.function.get_dispatch_info()
@@ -380,7 +380,7 @@ where
 }
 
 /// Implementation for checked extrinsic.
-impl<AccountId, Call, Extra> GetDispatchInfo for CheckedExtrinsic<AccountId, Call, Extra>
+impl<AccountId, Call, Extension> GetDispatchInfo for CheckedExtrinsic<AccountId, Call, Extension>
 where
 	Call: GetDispatchInfo,
 {
@@ -389,21 +389,6 @@ where
 	}
 }
 
-/// Implementation for test extrinsic.
-#[cfg(feature = "std")]
-impl<Call: Encode + GetDispatchInfo, Extra: Encode> GetDispatchInfo
-	for sp_runtime::testing::TestXt<Call, Extra>
-{
-	fn get_dispatch_info(&self) -> DispatchInfo {
-		// for testing: weight == size.
-		DispatchInfo {
-			weight: Weight::from_parts(self.encode().len() as _, 0),
-			pays_fee: Pays::Yes,
-			class: self.call.get_dispatch_info().class,
-		}
-	}
-}
-
 /// A struct holding value for each `DispatchClass`.
 #[derive(Clone, Eq, PartialEq, Default, Debug, Encode, Decode, TypeInfo, MaxEncodedLen)]
 pub struct PerDispatchClass<T> {
diff --git a/substrate/frame/support/src/lib.rs b/substrate/frame/support/src/lib.rs
index caf9457d666..b5b1ac09c60 100644
--- a/substrate/frame/support/src/lib.rs
+++ b/substrate/frame/support/src/lib.rs
@@ -54,7 +54,8 @@ pub mod __private {
 	#[cfg(feature = "std")]
 	pub use sp_runtime::{bounded_btree_map, bounded_vec};
 	pub use sp_runtime::{
-		traits::Dispatchable, DispatchError, RuntimeDebug, StateVersion, TransactionOutcome,
+		traits::{AsSystemOriginSigner, Dispatchable},
+		DispatchError, RuntimeDebug, StateVersion, TransactionOutcome,
 	};
 	#[cfg(feature = "std")]
 	pub use sp_state_machine::BasicExternalities;
@@ -75,6 +76,7 @@ pub mod storage;
 #[cfg(test)]
 mod tests;
 pub mod traits;
+pub mod transaction_extensions;
 pub mod weights;
 #[doc(hidden)]
 pub mod unsigned {
@@ -1602,8 +1604,8 @@ pub mod pallet_macros {
 	/// [`ValidateUnsigned`](frame_support::pallet_prelude::ValidateUnsigned) for
 	/// type `Pallet<T>`, and some optional where clause.
 	///
-	/// NOTE: There is also the [`sp_runtime::traits::SignedExtension`] trait that can be used
-	/// to add some specific logic for transaction validation.
+	/// NOTE: There is also the [`sp_runtime::traits::TransactionExtension`] trait that can be
+	/// used to add some specific logic for transaction validation.
 	///
 	/// ## Macro expansion
 	///
diff --git a/substrate/frame/support/src/traits/dispatch.rs b/substrate/frame/support/src/traits/dispatch.rs
index de50ce7a26c..212c3080352 100644
--- a/substrate/frame/support/src/traits/dispatch.rs
+++ b/substrate/frame/support/src/traits/dispatch.rs
@@ -482,7 +482,7 @@ pub trait OriginTrait: Sized {
 	type Call;
 
 	/// The caller origin, overarching type of all pallets origins.
-	type PalletsOrigin: Into<Self> + CallerTrait<Self::AccountId> + MaxEncodedLen;
+	type PalletsOrigin: Send + Sync + Into<Self> + CallerTrait<Self::AccountId> + MaxEncodedLen;
 
 	/// The AccountId used across the system.
 	type AccountId;
@@ -496,6 +496,14 @@ pub trait OriginTrait: Sized {
 	/// Replace the caller with caller from the other origin
 	fn set_caller_from(&mut self, other: impl Into<Self>);
 
+	/// Replace the caller with caller from the other origin
+	fn set_caller(&mut self, caller: Self::PalletsOrigin);
+
+	/// Replace the caller with caller from the other origin
+	fn set_caller_from_signed(&mut self, caller_account: Self::AccountId) {
+		self.set_caller(Self::PalletsOrigin::from(RawOrigin::Signed(caller_account)))
+	}
+
 	/// Filter the call if caller is not root, if false is returned then the call must be filtered
 	/// out.
 	///
@@ -544,6 +552,17 @@ pub trait OriginTrait: Sized {
 	fn as_system_ref(&self) -> Option<&RawOrigin<Self::AccountId>> {
 		self.caller().as_system_ref()
 	}
+
+	/// Extract a reference to the sytsem signer, if that's what the caller is.
+	fn as_system_signer(&self) -> Option<&Self::AccountId> {
+		self.caller().as_system_ref().and_then(|s| {
+			if let RawOrigin::Signed(ref who) = s {
+				Some(who)
+			} else {
+				None
+			}
+		})
+	}
 }
 
 #[cfg(test)]
diff --git a/substrate/frame/support/src/traits/misc.rs b/substrate/frame/support/src/traits/misc.rs
index 1f634a64282..fba546ce21b 100644
--- a/substrate/frame/support/src/traits/misc.rs
+++ b/substrate/frame/support/src/traits/misc.rs
@@ -919,24 +919,13 @@ pub trait ExtrinsicCall: sp_runtime::traits::Extrinsic {
 	fn call(&self) -> &Self::Call;
 }
 
-#[cfg(feature = "std")]
-impl<Call, Extra> ExtrinsicCall for sp_runtime::testing::TestXt<Call, Extra>
-where
-	Call: codec::Codec + Sync + Send + TypeInfo,
-	Extra: TypeInfo,
-{
-	fn call(&self) -> &Self::Call {
-		&self.call
-	}
-}
-
 impl<Address, Call, Signature, Extra> ExtrinsicCall
 	for sp_runtime::generic::UncheckedExtrinsic<Address, Call, Signature, Extra>
 where
 	Address: TypeInfo,
 	Call: TypeInfo,
 	Signature: TypeInfo,
-	Extra: sp_runtime::traits::SignedExtension + TypeInfo,
+	Extra: TypeInfo,
 {
 	fn call(&self) -> &Self::Call {
 		&self.function
diff --git a/substrate/frame/support/src/transaction_extensions.rs b/substrate/frame/support/src/transaction_extensions.rs
new file mode 100644
index 00000000000..98d78b9b4e4
--- /dev/null
+++ b/substrate/frame/support/src/transaction_extensions.rs
@@ -0,0 +1,89 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Transaction extensions.
+
+use crate::{CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound};
+use codec::{Decode, Encode};
+use scale_info::TypeInfo;
+use sp_io::hashing::blake2_256;
+use sp_runtime::{
+	impl_tx_ext_default,
+	traits::{
+		transaction_extension::{TransactionExtensionBase, TransactionExtensionInterior},
+		DispatchInfoOf, Dispatchable, IdentifyAccount, TransactionExtension, Verify,
+	},
+	transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction},
+};
+
+#[derive(
+	CloneNoBound, EqNoBound, PartialEqNoBound, Encode, Decode, RuntimeDebugNoBound, TypeInfo,
+)]
+#[codec(encode_bound())]
+#[codec(decode_bound())]
+pub struct VerifyMultiSignature<V: Verify>
+where
+	V: TransactionExtensionInterior,
+	<V::Signer as IdentifyAccount>::AccountId: TransactionExtensionInterior,
+{
+	signature: V,
+	account: <V::Signer as IdentifyAccount>::AccountId,
+}
+
+impl<V: Verify> TransactionExtensionBase for VerifyMultiSignature<V>
+where
+	V: TransactionExtensionInterior,
+	<V::Signer as IdentifyAccount>::AccountId: TransactionExtensionInterior,
+{
+	const IDENTIFIER: &'static str = "VerifyMultiSignature";
+	type Implicit = ();
+}
+
+impl<V: Verify, Call: Dispatchable + Encode, Context> TransactionExtension<Call, Context>
+	for VerifyMultiSignature<V>
+where
+	V: TransactionExtensionInterior,
+	<V::Signer as IdentifyAccount>::AccountId: TransactionExtensionInterior,
+	<Call as Dispatchable>::RuntimeOrigin: From<Option<<V::Signer as IdentifyAccount>::AccountId>>,
+{
+	type Val = ();
+	type Pre = ();
+	impl_tx_ext_default!(Call; Context; prepare);
+
+	fn validate(
+		&self,
+		_origin: <Call as Dispatchable>::RuntimeOrigin,
+		_call: &Call,
+		_info: &DispatchInfoOf<Call>,
+		_len: usize,
+		_: &mut Context,
+		_: (),
+		inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <Call as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
+		let msg = inherited_implication.using_encoded(blake2_256);
+
+		if !self.signature.verify(&msg[..], &self.account) {
+			Err(InvalidTransaction::BadProof)?
+		}
+		// We clobber the original origin. Maybe we shuld check that it's none?
+		let origin = Some(self.account.clone()).into();
+		Ok((ValidTransaction::default(), (), origin))
+	}
+}
diff --git a/substrate/frame/support/src/weights/block_weights.rs b/substrate/frame/support/src/weights/block_weights.rs
index 57a68554755..647b6198357 100644
--- a/substrate/frame/support/src/weights/block_weights.rs
+++ b/substrate/frame/support/src/weights/block_weights.rs
@@ -15,24 +15,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16 (Y/M/D)
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01 (Y/M/D)
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Development`
 //! WARMUPS: `10`, REPEAT: `100`
-//! WEIGHT-PATH: `./frame/support/src/weights/`
+//! WEIGHT-PATH: `./substrate/frame/support/src/weights/`
 //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0`
 
 // Executed Command:
-//   ./target/production/substrate
+//   ./target/production/substrate-node
 //   benchmark
 //   overhead
 //   --chain=dev
-//   --execution=wasm
 //   --wasm-execution=compiled
-//   --weight-path=./frame/support/src/weights/
-//   --header=./HEADER-APACHE2
+//   --weight-path=./substrate/frame/support/src/weights/
+//   --header=./substrate/HEADER-APACHE2
 //   --warmup=10
 //   --repeat=100
 
@@ -44,17 +43,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 376_949, 622_462
-	///   Average:  390_584
-	///   Median:   386_322
-	///   Std-Dev:  24792.0
+	///   Min, Max: 424_332, 493_017
+	///   Average:  437_118
+	///   Median:   434_920
+	///   Std-Dev:  8798.01
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 433_299
-	///   95th: 402_688
-	///   75th: 391_645
+	///   99th: 460_074
+	///   95th: 451_580
+	///   75th: 440_307
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(390_584), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(437_118), 0);
 }
 
 #[cfg(test)]
diff --git a/substrate/frame/support/src/weights/extrinsic_weights.rs b/substrate/frame/support/src/weights/extrinsic_weights.rs
index a304f089ff7..99b392c4369 100644
--- a/substrate/frame/support/src/weights/extrinsic_weights.rs
+++ b/substrate/frame/support/src/weights/extrinsic_weights.rs
@@ -15,24 +15,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16 (Y/M/D)
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01 (Y/M/D)
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Development`
 //! WARMUPS: `10`, REPEAT: `100`
-//! WEIGHT-PATH: `./frame/support/src/weights/`
+//! WEIGHT-PATH: `./substrate/frame/support/src/weights/`
 //! WEIGHT-METRIC: `Average`, WEIGHT-MUL: `1.0`, WEIGHT-ADD: `0`
 
 // Executed Command:
-//   ./target/production/substrate
+//   ./target/production/substrate-node
 //   benchmark
 //   overhead
 //   --chain=dev
-//   --execution=wasm
 //   --wasm-execution=compiled
-//   --weight-path=./frame/support/src/weights/
-//   --header=./HEADER-APACHE2
+//   --weight-path=./substrate/frame/support/src/weights/
+//   --header=./substrate/HEADER-APACHE2
 //   --warmup=10
 //   --repeat=100
 
@@ -44,17 +43,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 123_875, 128_419
-	///   Average:  124_414
-	///   Median:   124_332
-	///   Std-Dev:  497.74
+	///   Min, Max: 106_053, 107_403
+	///   Average:  106_446
+	///   Median:   106_415
+	///   Std-Dev:  216.17
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 125_245
-	///   95th: 124_989
-	///   75th: 124_498
+	///   99th: 107_042
+	///   95th: 106_841
+	///   75th: 106_544
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(124_414), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(106_446), 0);
 }
 
 #[cfg(test)]
diff --git a/substrate/frame/support/test/tests/construct_runtime.rs b/substrate/frame/support/test/tests/construct_runtime.rs
index b7698681886..83691451ccd 100644
--- a/substrate/frame/support/test/tests/construct_runtime.rs
+++ b/substrate/frame/support/test/tests/construct_runtime.rs
@@ -815,7 +815,7 @@ fn test_metadata() {
 		ty: meta_type::<UncheckedExtrinsic>(),
 		version: 4,
 		signed_extensions: vec![SignedExtensionMetadata {
-			identifier: "UnitSignedExtension",
+			identifier: "UnitTransactionExtension",
 			ty: meta_type::<()>(),
 			additional_signed: meta_type::<()>(),
 		}],
diff --git a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr
index 61cfc07caed..9dd460da75a 100644
--- a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr
+++ b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr
@@ -477,7 +477,7 @@ note: required because it appears within the type `RuntimeCall`
    | ||_- in this macro invocation
 ...  |
 note: required by a bound in `frame_support::sp_runtime::traits::Dispatchable::Config`
-  --> $WORKSPACE/substrate/primitives/runtime/src/traits.rs
+  --> $WORKSPACE/substrate/primitives/runtime/src/traits/mod.rs
    |
    |     type Config;
    |     ^^^^^^^^^^^^ required by this bound in `Dispatchable::Config`
@@ -510,7 +510,7 @@ note: required because it appears within the type `RuntimeCall`
    | ||_- in this macro invocation
 ...  |
 note: required by a bound in `frame_support::pallet_prelude::ValidateUnsigned::Call`
-  --> $WORKSPACE/substrate/primitives/runtime/src/traits.rs
+  --> $WORKSPACE/substrate/primitives/runtime/src/traits/mod.rs
    |
    |     type Call;
    |     ^^^^^^^^^^ required by this bound in `ValidateUnsigned::Call`
diff --git a/substrate/frame/support/test/tests/pallet.rs b/substrate/frame/support/test/tests/pallet.rs
index 607f54ccc13..4d2737d411e 100644
--- a/substrate/frame/support/test/tests/pallet.rs
+++ b/substrate/frame/support/test/tests/pallet.rs
@@ -743,10 +743,40 @@ impl pallet5::Config for Runtime {
 	type RuntimeOrigin = RuntimeOrigin;
 }
 
+#[derive(Clone, Debug, codec::Encode, codec::Decode, PartialEq, Eq, scale_info::TypeInfo)]
+pub struct AccountU64(u64);
+impl sp_runtime::traits::IdentifyAccount for AccountU64 {
+	type AccountId = u64;
+	fn into_account(self) -> u64 {
+		self.0
+	}
+}
+
+impl sp_runtime::traits::Verify for AccountU64 {
+	type Signer = AccountU64;
+	fn verify<L: sp_runtime::traits::Lazy<[u8]>>(
+		&self,
+		_msg: L,
+		_signer: &<Self::Signer as sp_runtime::traits::IdentifyAccount>::AccountId,
+	) -> bool {
+		true
+	}
+}
+
+impl From<u64> for AccountU64 {
+	fn from(value: u64) -> Self {
+		Self(value)
+	}
+}
+
 pub type Header = sp_runtime::generic::Header<u32, sp_runtime::traits::BlakeTwo256>;
 pub type Block = sp_runtime::generic::Block<Header, UncheckedExtrinsic>;
-pub type UncheckedExtrinsic =
-	sp_runtime::testing::TestXt<RuntimeCall, frame_system::CheckNonZeroSender<Runtime>>;
+pub type UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic<
+	u64,
+	RuntimeCall,
+	AccountU64,
+	frame_system::CheckNonZeroSender<Runtime>,
+>;
 
 frame_support::construct_runtime!(
 	pub struct Runtime {
@@ -896,10 +926,8 @@ fn inherent_expand() {
 
 	let inherents = InherentData::new().create_extrinsics();
 
-	let expected = vec![UncheckedExtrinsic {
-		call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-		signature: None,
-	}];
+	let expected =
+		vec![UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_no_post_info {}))];
 	assert_eq!(expected, inherents);
 
 	let block = Block::new(
@@ -911,14 +939,11 @@ fn inherent_expand() {
 			Digest::default(),
 		),
 		vec![
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 0 }),
-				signature: None,
-			},
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_no_post_info {})),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo {
+				foo: 1,
+				bar: 0,
+			})),
 		],
 	);
 
@@ -933,14 +958,11 @@ fn inherent_expand() {
 			Digest::default(),
 		),
 		vec![
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 0, bar: 0 }),
-				signature: None,
-			},
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_no_post_info {})),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo {
+				foo: 0,
+				bar: 0,
+			})),
 		],
 	);
 
@@ -954,10 +976,9 @@ fn inherent_expand() {
 			BlakeTwo256::hash(b"test"),
 			Digest::default(),
 		),
-		vec![UncheckedExtrinsic {
-			call: RuntimeCall::Example(pallet::Call::foo_storage_layer { foo: 0 }),
-			signature: None,
-		}],
+		vec![UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_storage_layer {
+			foo: 0,
+		}))],
 	);
 
 	let mut inherent = InherentData::new();
@@ -972,10 +993,12 @@ fn inherent_expand() {
 			BlakeTwo256::hash(b"test"),
 			Digest::default(),
 		),
-		vec![UncheckedExtrinsic {
-			call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-			signature: Some((1, Default::default())),
-		}],
+		vec![UncheckedExtrinsic::new_signed(
+			RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
+			1,
+			1.into(),
+			Default::default(),
+		)],
 	);
 
 	let mut inherent = InherentData::new();
@@ -991,14 +1014,13 @@ fn inherent_expand() {
 			Digest::default(),
 		),
 		vec![
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 1 }),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_storage_layer { foo: 0 }),
-				signature: None,
-			},
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo {
+				foo: 1,
+				bar: 1,
+			})),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_storage_layer {
+				foo: 0,
+			})),
 		],
 	);
 
@@ -1013,18 +1035,14 @@ fn inherent_expand() {
 			Digest::default(),
 		),
 		vec![
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 1 }),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_storage_layer { foo: 0 }),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-				signature: None,
-			},
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo {
+				foo: 1,
+				bar: 1,
+			})),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_storage_layer {
+				foo: 0,
+			})),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_no_post_info {})),
 		],
 	);
 
@@ -1039,18 +1057,17 @@ fn inherent_expand() {
 			Digest::default(),
 		),
 		vec![
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 1 }),
-				signature: None,
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 0 }),
-				signature: Some((1, Default::default())),
-			},
-			UncheckedExtrinsic {
-				call: RuntimeCall::Example(pallet::Call::foo_no_post_info {}),
-				signature: None,
-			},
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo {
+				foo: 1,
+				bar: 1,
+			})),
+			UncheckedExtrinsic::new_signed(
+				RuntimeCall::Example(pallet::Call::foo { foo: 1, bar: 0 }),
+				1,
+				1.into(),
+				Default::default(),
+			),
+			UncheckedExtrinsic::new_bare(RuntimeCall::Example(pallet::Call::foo_no_post_info {})),
 		],
 	);
 
@@ -1933,7 +1950,7 @@ fn extrinsic_metadata_ir_types() {
 		>(),
 		ir.signature_ty
 	);
-	assert_eq!(meta_type::<()>(), ir.signature_ty);
+	assert_eq!(meta_type::<AccountU64>(), ir.signature_ty);
 
 	assert_eq!(meta_type::<<<UncheckedExtrinsic as ExtrinsicT>::SignaturePayload as SignaturePayloadT>::SignatureExtra>(), ir.extra_ty);
 	assert_eq!(meta_type::<frame_system::CheckNonZeroSender<Runtime>>(), ir.extra_ty);
diff --git a/substrate/frame/support/test/tests/pallet_instance.rs b/substrate/frame/support/test/tests/pallet_instance.rs
index f8cc97623b8..505400a7c21 100644
--- a/substrate/frame/support/test/tests/pallet_instance.rs
+++ b/substrate/frame/support/test/tests/pallet_instance.rs
@@ -943,7 +943,7 @@ fn metadata() {
 		ty: scale_info::meta_type::<UncheckedExtrinsic>(),
 		version: 4,
 		signed_extensions: vec![SignedExtensionMetadata {
-			identifier: "UnitSignedExtension",
+			identifier: "UnitTransactionExtension",
 			ty: scale_info::meta_type::<()>(),
 			additional_signed: scale_info::meta_type::<()>(),
 		}],
diff --git a/substrate/frame/system/benchmarking/src/extensions.rs b/substrate/frame/system/benchmarking/src/extensions.rs
new file mode 100644
index 00000000000..1721501dead
--- /dev/null
+++ b/substrate/frame/system/benchmarking/src/extensions.rs
@@ -0,0 +1,213 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Benchmarks for System Extensions
+
+#![cfg(feature = "runtime-benchmarks")]
+
+use frame_benchmarking::{account, impl_benchmark_test_suite, v2::*, BenchmarkError};
+use frame_support::{
+	dispatch::{DispatchClass, DispatchInfo, PostDispatchInfo},
+	weights::Weight,
+};
+use frame_system::{
+	pallet_prelude::*, CheckGenesis, CheckMortality, CheckNonZeroSender, CheckNonce,
+	CheckSpecVersion, CheckTxVersion, CheckWeight, Config, Pallet as System, RawOrigin,
+};
+use sp_runtime::{
+	generic::Era,
+	traits::{AsSystemOriginSigner, DispatchTransaction, Dispatchable, Get},
+};
+use sp_std::prelude::*;
+
+pub struct Pallet<T: Config>(System<T>);
+
+#[benchmarks(where
+	T: Send + Sync,
+    T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone)
+]
+mod benchmarks {
+	use super::*;
+
+	#[benchmark]
+	fn check_genesis() -> Result<(), BenchmarkError> {
+		let len = 0_usize;
+		let caller = account("caller", 0, 0);
+		let info = DispatchInfo { weight: Weight::zero(), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			CheckGenesis::<T>::new()
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(().into()))
+				.unwrap()
+				.unwrap();
+		}
+
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_mortality() -> Result<(), BenchmarkError> {
+		let len = 0_usize;
+		let ext = CheckMortality::<T>::from(Era::mortal(16, 256));
+		let block_number: BlockNumberFor<T> = 17u32.into();
+		System::<T>::set_block_number(block_number);
+		let prev_block: BlockNumberFor<T> = 16u32.into();
+		let default_hash: T::Hash = Default::default();
+		frame_system::BlockHash::<T>::insert(prev_block, default_hash);
+		let caller = account("caller", 0, 0);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(100, 0),
+			class: DispatchClass::Normal,
+			..Default::default()
+		};
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			ext.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(().into()))
+				.unwrap()
+				.unwrap();
+		}
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_non_zero_sender() -> Result<(), BenchmarkError> {
+		let len = 0_usize;
+		let ext = CheckNonZeroSender::<T>::new();
+		let caller = account("caller", 0, 0);
+		let info = DispatchInfo { weight: Weight::zero(), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			ext.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(().into()))
+				.unwrap()
+				.unwrap();
+		}
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_nonce() -> Result<(), BenchmarkError> {
+		let caller: T::AccountId = account("caller", 0, 0);
+		let mut info = frame_system::AccountInfo::default();
+		info.nonce = 1u32.into();
+		info.providers = 1;
+		let expected_nonce = info.nonce + 1u32.into();
+		frame_system::Account::<T>::insert(caller.clone(), info);
+		let len = 0_usize;
+		let ext = CheckNonce::<T>::from(1u32.into());
+		let info = DispatchInfo { weight: Weight::zero(), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			ext.test_run(RawOrigin::Signed(caller.clone()).into(), &call, &info, len, |_| {
+				Ok(().into())
+			})
+			.unwrap()
+			.unwrap();
+		}
+
+		let updated_info = frame_system::Account::<T>::get(caller.clone());
+		assert_eq!(updated_info.nonce, expected_nonce);
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_spec_version() -> Result<(), BenchmarkError> {
+		let len = 0_usize;
+		let caller = account("caller", 0, 0);
+		let info = DispatchInfo { weight: Weight::zero(), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			CheckSpecVersion::<T>::new()
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(().into()))
+				.unwrap()
+				.unwrap();
+		}
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_tx_version() -> Result<(), BenchmarkError> {
+		let len = 0_usize;
+		let caller = account("caller", 0, 0);
+		let info = DispatchInfo { weight: Weight::zero(), ..Default::default() };
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+
+		#[block]
+		{
+			CheckTxVersion::<T>::new()
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(().into()))
+				.unwrap()
+				.unwrap();
+		}
+		Ok(())
+	}
+
+	#[benchmark]
+	fn check_weight() -> Result<(), BenchmarkError> {
+		let caller = account("caller", 0, 0);
+		let base_extrinsic = <T as frame_system::Config>::BlockWeights::get()
+			.get(DispatchClass::Normal)
+			.base_extrinsic;
+		let info = DispatchInfo {
+			weight: Weight::from_parts(base_extrinsic.ref_time() * 5, 0),
+			class: DispatchClass::Normal,
+			..Default::default()
+		};
+		let call: T::RuntimeCall = frame_system::Call::remark { remark: vec![] }.into();
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(base_extrinsic.ref_time() * 2, 0)),
+			pays_fee: Default::default(),
+		};
+		let len = 0_usize;
+		let base_extrinsic = <T as frame_system::Config>::BlockWeights::get()
+			.get(DispatchClass::Normal)
+			.base_extrinsic;
+
+		let ext = CheckWeight::<T>::new();
+
+		let initial_block_weight = Weight::from_parts(base_extrinsic.ref_time() * 2, 0);
+		frame_system::BlockWeight::<T>::mutate(|current_weight| {
+			current_weight.set(Weight::zero(), DispatchClass::Mandatory);
+			current_weight.set(initial_block_weight, DispatchClass::Normal);
+		});
+
+		#[block]
+		{
+			ext.test_run(RawOrigin::Signed(caller).into(), &call, &info, len, |_| Ok(post_info))
+				.unwrap()
+				.unwrap();
+		}
+
+		assert_eq!(
+			System::<T>::block_weight().total(),
+			initial_block_weight + base_extrinsic + post_info.actual_weight.unwrap(),
+		);
+		Ok(())
+	}
+
+	impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Test,);
+}
diff --git a/substrate/frame/system/benchmarking/src/lib.rs b/substrate/frame/system/benchmarking/src/lib.rs
index 18bfb85f52d..ebd16275bcb 100644
--- a/substrate/frame/system/benchmarking/src/lib.rs
+++ b/substrate/frame/system/benchmarking/src/lib.rs
@@ -28,6 +28,7 @@ use sp_core::storage::well_known_keys;
 use sp_runtime::traits::Hash;
 use sp_std::{prelude::*, vec};
 
+pub mod extensions;
 mod mock;
 
 pub struct Pallet<T: Config>(System<T>);
diff --git a/substrate/frame/system/benchmarking/src/mock.rs b/substrate/frame/system/benchmarking/src/mock.rs
index edbf74a9a51..1f84dd53004 100644
--- a/substrate/frame/system/benchmarking/src/mock.rs
+++ b/substrate/frame/system/benchmarking/src/mock.rs
@@ -57,6 +57,7 @@ impl frame_system::Config for Test {
 	type OnNewAccount = ();
 	type OnKilledAccount = ();
 	type SystemWeightInfo = ();
+	type ExtensionsWeightInfo = ();
 	type SS58Prefix = ();
 	type OnSetCode = ();
 	type MaxConsumers = frame_support::traits::ConstU32<16>;
diff --git a/substrate/frame/system/src/extensions/check_genesis.rs b/substrate/frame/system/src/extensions/check_genesis.rs
index 76a711a823e..3f11f745cd9 100644
--- a/substrate/frame/system/src/extensions/check_genesis.rs
+++ b/substrate/frame/system/src/extensions/check_genesis.rs
@@ -19,7 +19,8 @@ use crate::{pallet_prelude::BlockNumberFor, Config, Pallet};
 use codec::{Decode, Encode};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, SignedExtension, Zero},
+	impl_tx_ext_default,
+	traits::{TransactionExtension, TransactionExtensionBase, Zero},
 	transaction_validity::TransactionValidityError,
 };
 
@@ -46,30 +47,26 @@ impl<T: Config + Send + Sync> sp_std::fmt::Debug for CheckGenesis<T> {
 }
 
 impl<T: Config + Send + Sync> CheckGenesis<T> {
-	/// Creates new `SignedExtension` to check genesis hash.
+	/// Creates new `TransactionExtension` to check genesis hash.
 	pub fn new() -> Self {
 		Self(sp_std::marker::PhantomData)
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckGenesis<T> {
-	type AccountId = T::AccountId;
-	type Call = <T as Config>::RuntimeCall;
-	type AdditionalSigned = T::Hash;
-	type Pre = ();
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckGenesis<T> {
 	const IDENTIFIER: &'static str = "CheckGenesis";
-
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+	type Implicit = T::Hash;
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
 		Ok(<Pallet<T>>::block_hash(BlockNumberFor::<T>::zero()))
 	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_genesis()
 	}
 }
+impl<T: Config + Send + Sync, Context> TransactionExtension<T::RuntimeCall, Context>
+	for CheckGenesis<T>
+{
+	type Val = ();
+	type Pre = ();
+	impl_tx_ext_default!(T::RuntimeCall; Context; validate prepare);
+}
diff --git a/substrate/frame/system/src/extensions/check_mortality.rs b/substrate/frame/system/src/extensions/check_mortality.rs
index 148dfd4aad4..deb44880d64 100644
--- a/substrate/frame/system/src/extensions/check_mortality.rs
+++ b/substrate/frame/system/src/extensions/check_mortality.rs
@@ -20,10 +20,12 @@ use codec::{Decode, Encode};
 use scale_info::TypeInfo;
 use sp_runtime::{
 	generic::Era,
-	traits::{DispatchInfoOf, SaturatedConversion, SignedExtension},
-	transaction_validity::{
-		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+	impl_tx_ext_default,
+	traits::{
+		DispatchInfoOf, SaturatedConversion, TransactionExtension, TransactionExtensionBase,
+		ValidateResult,
 	},
+	transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction},
 };
 
 /// Check for transaction mortality.
@@ -54,29 +56,11 @@ impl<T: Config + Send + Sync> sp_std::fmt::Debug for CheckMortality<T> {
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckMortality<T> {
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = T::Hash;
-	type Pre = ();
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckMortality<T> {
 	const IDENTIFIER: &'static str = "CheckMortality";
+	type Implicit = T::Hash;
 
-	fn validate(
-		&self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
-		_len: usize,
-	) -> TransactionValidity {
-		let current_u64 = <Pallet<T>>::block_number().saturated_into::<u64>();
-		let valid_till = self.0.death(current_u64);
-		Ok(ValidTransaction {
-			longevity: valid_till.saturating_sub(current_u64),
-			..Default::default()
-		})
-	}
-
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
 		let current_u64 = <Pallet<T>>::block_number().saturated_into::<u64>();
 		let n = self.0.birth(current_u64).saturated_into::<BlockNumberFor<T>>();
 		if !<BlockHash<T>>::contains_key(n) {
@@ -85,16 +69,38 @@ impl<T: Config + Send + Sync> SignedExtension for CheckMortality<T> {
 			Ok(<Pallet<T>>::block_hash(n))
 		}
 	}
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_mortality()
+	}
+}
+impl<T: Config + Send + Sync, Context> TransactionExtension<T::RuntimeCall, Context>
+	for CheckMortality<T>
+{
+	type Pre = ();
+	type Val = ();
 
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
+	fn validate(
+		&self,
+		origin: <T as Config>::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, T::RuntimeCall> {
+		let current_u64 = <Pallet<T>>::block_number().saturated_into::<u64>();
+		let valid_till = self.0.death(current_u64);
+		Ok((
+			ValidTransaction {
+				longevity: valid_till.saturating_sub(current_u64),
+				..Default::default()
+			},
+			(),
+			origin,
+		))
 	}
+	impl_tx_ext_default!(T::RuntimeCall; Context; prepare);
 }
 
 #[cfg(test)]
@@ -106,23 +112,21 @@ mod tests {
 		weights::Weight,
 	};
 	use sp_core::H256;
+	use sp_runtime::traits::DispatchTransaction;
 
 	#[test]
 	fn signed_ext_check_era_should_work() {
 		new_test_ext().execute_with(|| {
 			// future
 			assert_eq!(
-				CheckMortality::<Test>::from(Era::mortal(4, 2))
-					.additional_signed()
-					.err()
-					.unwrap(),
+				CheckMortality::<Test>::from(Era::mortal(4, 2)).implicit().err().unwrap(),
 				InvalidTransaction::AncientBirthBlock.into(),
 			);
 
 			// correct
 			System::set_block_number(13);
 			<BlockHash<Test>>::insert(12, H256::repeat_byte(1));
-			assert!(CheckMortality::<Test>::from(Era::mortal(4, 12)).additional_signed().is_ok());
+			assert!(CheckMortality::<Test>::from(Era::mortal(4, 12)).implicit().is_ok());
 		})
 	}
 
@@ -142,7 +146,10 @@ mod tests {
 			System::set_block_number(17);
 			<BlockHash<Test>>::insert(16, H256::repeat_byte(1));
 
-			assert_eq!(ext.validate(&1, CALL, &normal, len).unwrap().longevity, 15);
+			assert_eq!(
+				ext.validate_only(Some(1).into(), CALL, &normal, len).unwrap().0.longevity,
+				15
+			);
 		})
 	}
 }
diff --git a/substrate/frame/system/src/extensions/check_non_zero_sender.rs b/substrate/frame/system/src/extensions/check_non_zero_sender.rs
index 92eed60fc66..115ffac9b03 100644
--- a/substrate/frame/system/src/extensions/check_non_zero_sender.rs
+++ b/substrate/frame/system/src/extensions/check_non_zero_sender.rs
@@ -17,13 +17,14 @@
 
 use crate::Config;
 use codec::{Decode, Encode};
-use frame_support::{dispatch::DispatchInfo, DefaultNoBound};
+use frame_support::{traits::OriginTrait, DefaultNoBound};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, SignedExtension},
-	transaction_validity::{
-		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+	impl_tx_ext_default,
+	traits::{
+		transaction_extension::TransactionExtensionBase, DispatchInfoOf, TransactionExtension,
 	},
+	transaction_validity::InvalidTransaction,
 };
 use sp_std::{marker::PhantomData, prelude::*};
 
@@ -45,66 +46,82 @@ impl<T: Config + Send + Sync> sp_std::fmt::Debug for CheckNonZeroSender<T> {
 }
 
 impl<T: Config + Send + Sync> CheckNonZeroSender<T> {
-	/// Create new `SignedExtension` to check runtime version.
+	/// Create new `TransactionExtension` to check runtime version.
 	pub fn new() -> Self {
 		Self(sp_std::marker::PhantomData)
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckNonZeroSender<T>
-where
-	T::RuntimeCall: Dispatchable<Info = DispatchInfo>,
-{
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
-	type Pre = ();
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckNonZeroSender<T> {
 	const IDENTIFIER: &'static str = "CheckNonZeroSender";
-
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
+	type Implicit = ();
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_non_zero_sender()
 	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
-
+}
+impl<T: Config + Send + Sync, Context> TransactionExtension<T::RuntimeCall, Context>
+	for CheckNonZeroSender<T>
+{
+	type Val = ();
+	type Pre = ();
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: <T as Config>::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
-		if who.using_encoded(|d| d.iter().all(|x| *x == 0)) {
-			return Err(TransactionValidityError::Invalid(InvalidTransaction::BadSigner))
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> sp_runtime::traits::ValidateResult<Self::Val, T::RuntimeCall> {
+		if let Some(who) = origin.as_system_signer() {
+			if who.using_encoded(|d| d.iter().all(|x| *x == 0)) {
+				return Err(InvalidTransaction::BadSigner.into())
+			}
 		}
-		Ok(ValidTransaction::default())
+		Ok((Default::default(), (), origin))
 	}
+	impl_tx_ext_default!(T::RuntimeCall; Context; prepare);
 }
 
 #[cfg(test)]
 mod tests {
 	use super::*;
 	use crate::mock::{new_test_ext, Test, CALL};
-	use frame_support::{assert_noop, assert_ok};
+	use frame_support::{assert_ok, dispatch::DispatchInfo};
+	use sp_runtime::{traits::DispatchTransaction, TransactionValidityError};
 
 	#[test]
 	fn zero_account_ban_works() {
 		new_test_ext().execute_with(|| {
 			let info = DispatchInfo::default();
 			let len = 0_usize;
-			assert_noop!(
-				CheckNonZeroSender::<Test>::new().validate(&0, CALL, &info, len),
-				InvalidTransaction::BadSigner
+			assert_eq!(
+				CheckNonZeroSender::<Test>::new()
+					.validate_only(Some(0).into(), CALL, &info, len)
+					.unwrap_err(),
+				TransactionValidityError::from(InvalidTransaction::BadSigner)
 			);
-			assert_ok!(CheckNonZeroSender::<Test>::new().validate(&1, CALL, &info, len));
+			assert_ok!(CheckNonZeroSender::<Test>::new().validate_only(
+				Some(1).into(),
+				CALL,
+				&info,
+				len
+			));
+		})
+	}
+
+	#[test]
+	fn unsigned_origin_works() {
+		new_test_ext().execute_with(|| {
+			let info = DispatchInfo::default();
+			let len = 0_usize;
+			assert_ok!(CheckNonZeroSender::<Test>::new().validate_only(
+				None.into(),
+				CALL,
+				&info,
+				len
+			));
 		})
 	}
 }
diff --git a/substrate/frame/system/src/extensions/check_nonce.rs b/substrate/frame/system/src/extensions/check_nonce.rs
index 7504a814aef..ead9d9f7c81 100644
--- a/substrate/frame/system/src/extensions/check_nonce.rs
+++ b/substrate/frame/system/src/extensions/check_nonce.rs
@@ -15,16 +15,19 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-use crate::Config;
+use crate::{AccountInfo, Config};
 use codec::{Decode, Encode};
 use frame_support::dispatch::DispatchInfo;
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, One, SignedExtension, Zero},
+	traits::{
+		AsSystemOriginSigner, DispatchInfoOf, Dispatchable, One, TransactionExtension,
+		TransactionExtensionBase, ValidateResult, Zero,
+	},
 	transaction_validity::{
-		InvalidTransaction, TransactionLongevity, TransactionValidity, TransactionValidityError,
-		ValidTransaction,
+		InvalidTransaction, TransactionLongevity, TransactionValidityError, ValidTransaction,
 	},
+	Saturating,
 };
 use sp_std::vec;
 
@@ -58,75 +61,78 @@ impl<T: Config> sp_std::fmt::Debug for CheckNonce<T> {
 	}
 }
 
-impl<T: Config> SignedExtension for CheckNonce<T>
+impl<T: Config> TransactionExtensionBase for CheckNonce<T> {
+	const IDENTIFIER: &'static str = "CheckNonce";
+	type Implicit = ();
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_nonce()
+	}
+}
+impl<T: Config, Context> TransactionExtension<T::RuntimeCall, Context> for CheckNonce<T>
 where
 	T::RuntimeCall: Dispatchable<Info = DispatchInfo>,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
 {
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
+	type Val = Option<(T::AccountId, AccountInfo<T::Nonce, T::AccountData>)>;
 	type Pre = ();
-	const IDENTIFIER: &'static str = "CheckNonce";
-
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
-		_len: usize,
-	) -> Result<(), TransactionValidityError> {
-		let mut account = crate::Account::<T>::get(who);
-		if account.providers.is_zero() && account.sufficients.is_zero() {
-			// Nonce storage not paid for
-			return Err(InvalidTransaction::Payment.into())
-		}
-		if self.0 != account.nonce {
-			return Err(if self.0 < account.nonce {
-				InvalidTransaction::Stale
-			} else {
-				InvalidTransaction::Future
-			}
-			.into())
-		}
-		account.nonce += T::Nonce::one();
-		crate::Account::<T>::insert(who, account);
-		Ok(())
-	}
 
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: <T as Config>::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, T::RuntimeCall> {
+		let Some(who) = origin.as_system_origin_signer() else {
+			return Ok((Default::default(), None, origin))
+		};
 		let account = crate::Account::<T>::get(who);
 		if account.providers.is_zero() && account.sufficients.is_zero() {
 			// Nonce storage not paid for
-			return InvalidTransaction::Payment.into()
+			return Err(InvalidTransaction::Payment.into())
 		}
 		if self.0 < account.nonce {
-			return InvalidTransaction::Stale.into()
+			return Err(InvalidTransaction::Stale.into())
 		}
 
-		let provides = vec![Encode::encode(&(who, self.0))];
+		let provides = vec![Encode::encode(&(who.clone(), self.0))];
 		let requires = if account.nonce < self.0 {
-			vec![Encode::encode(&(who, self.0 - One::one()))]
+			vec![Encode::encode(&(who.clone(), self.0.saturating_sub(One::one())))]
 		} else {
 			vec![]
 		};
 
-		Ok(ValidTransaction {
+		let validity = ValidTransaction {
 			priority: 0,
 			requires,
 			provides,
 			longevity: TransactionLongevity::max_value(),
 			propagate: true,
-		})
+		};
+
+		Ok((validity, Some((who.clone(), account)), origin))
+	}
+
+	fn prepare(
+		self,
+		val: Self::Val,
+		_origin: &T::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		let Some((who, mut account)) = val else { return Ok(()) };
+		// `self.0 < account.nonce` already checked in `validate`.
+		if self.0 > account.nonce {
+			return Err(InvalidTransaction::Future.into())
+		}
+		account.nonce.saturating_inc();
+		crate::Account::<T>::insert(who, account);
+		Ok(())
 	}
 }
 
@@ -134,7 +140,8 @@ where
 mod tests {
 	use super::*;
 	use crate::mock::{new_test_ext, Test, CALL};
-	use frame_support::{assert_noop, assert_ok};
+	use frame_support::assert_ok;
+	use sp_runtime::traits::DispatchTransaction;
 
 	#[test]
 	fn signed_ext_check_nonce_works() {
@@ -152,22 +159,33 @@ mod tests {
 			let info = DispatchInfo::default();
 			let len = 0_usize;
 			// stale
-			assert_noop!(
-				CheckNonce::<Test>(0).validate(&1, CALL, &info, len),
-				InvalidTransaction::Stale
+			assert_eq!(
+				CheckNonce::<Test>(0)
+					.validate_only(Some(1).into(), CALL, &info, len,)
+					.unwrap_err(),
+				TransactionValidityError::Invalid(InvalidTransaction::Stale)
 			);
-			assert_noop!(
-				CheckNonce::<Test>(0).pre_dispatch(&1, CALL, &info, len),
-				InvalidTransaction::Stale
+			assert_eq!(
+				CheckNonce::<Test>(0)
+					.validate_and_prepare(Some(1).into(), CALL, &info, len)
+					.unwrap_err(),
+				InvalidTransaction::Stale.into()
 			);
 			// correct
-			assert_ok!(CheckNonce::<Test>(1).validate(&1, CALL, &info, len));
-			assert_ok!(CheckNonce::<Test>(1).pre_dispatch(&1, CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_only(Some(1).into(), CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_and_prepare(
+				Some(1).into(),
+				CALL,
+				&info,
+				len
+			));
 			// future
-			assert_ok!(CheckNonce::<Test>(5).validate(&1, CALL, &info, len));
-			assert_noop!(
-				CheckNonce::<Test>(5).pre_dispatch(&1, CALL, &info, len),
-				InvalidTransaction::Future
+			assert_ok!(CheckNonce::<Test>(5).validate_only(Some(1).into(), CALL, &info, len));
+			assert_eq!(
+				CheckNonce::<Test>(5)
+					.validate_and_prepare(Some(1).into(), CALL, &info, len)
+					.unwrap_err(),
+				InvalidTransaction::Future.into()
 			);
 		})
 	}
@@ -198,20 +216,44 @@ mod tests {
 			let info = DispatchInfo::default();
 			let len = 0_usize;
 			// Both providers and sufficients zero
-			assert_noop!(
-				CheckNonce::<Test>(1).validate(&1, CALL, &info, len),
-				InvalidTransaction::Payment
+			assert_eq!(
+				CheckNonce::<Test>(1)
+					.validate_only(Some(1).into(), CALL, &info, len)
+					.unwrap_err(),
+				TransactionValidityError::Invalid(InvalidTransaction::Payment)
 			);
-			assert_noop!(
-				CheckNonce::<Test>(1).pre_dispatch(&1, CALL, &info, len),
-				InvalidTransaction::Payment
+			assert_eq!(
+				CheckNonce::<Test>(1)
+					.validate_and_prepare(Some(1).into(), CALL, &info, len)
+					.unwrap_err(),
+				TransactionValidityError::Invalid(InvalidTransaction::Payment)
 			);
 			// Non-zero providers
-			assert_ok!(CheckNonce::<Test>(1).validate(&2, CALL, &info, len));
-			assert_ok!(CheckNonce::<Test>(1).pre_dispatch(&2, CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_only(Some(2).into(), CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_and_prepare(
+				Some(2).into(),
+				CALL,
+				&info,
+				len
+			));
 			// Non-zero sufficients
-			assert_ok!(CheckNonce::<Test>(1).validate(&3, CALL, &info, len));
-			assert_ok!(CheckNonce::<Test>(1).pre_dispatch(&3, CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_only(Some(3).into(), CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_and_prepare(
+				Some(3).into(),
+				CALL,
+				&info,
+				len
+			));
+		})
+	}
+
+	#[test]
+	fn unsigned_check_nonce_works() {
+		new_test_ext().execute_with(|| {
+			let info = DispatchInfo::default();
+			let len = 0_usize;
+			assert_ok!(CheckNonce::<Test>(1).validate_only(None.into(), CALL, &info, len));
+			assert_ok!(CheckNonce::<Test>(1).validate_and_prepare(None.into(), CALL, &info, len));
 		})
 	}
 }
diff --git a/substrate/frame/system/src/extensions/check_spec_version.rs b/substrate/frame/system/src/extensions/check_spec_version.rs
index 24d5ef9cafb..3109708f48e 100644
--- a/substrate/frame/system/src/extensions/check_spec_version.rs
+++ b/substrate/frame/system/src/extensions/check_spec_version.rs
@@ -19,7 +19,8 @@ use crate::{Config, Pallet};
 use codec::{Decode, Encode};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, SignedExtension},
+	impl_tx_ext_default,
+	traits::{transaction_extension::TransactionExtensionBase, TransactionExtension},
 	transaction_validity::TransactionValidityError,
 };
 
@@ -46,30 +47,26 @@ impl<T: Config + Send + Sync> sp_std::fmt::Debug for CheckSpecVersion<T> {
 }
 
 impl<T: Config + Send + Sync> CheckSpecVersion<T> {
-	/// Create new `SignedExtension` to check runtime version.
+	/// Create new `TransactionExtension` to check runtime version.
 	pub fn new() -> Self {
 		Self(sp_std::marker::PhantomData)
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckSpecVersion<T> {
-	type AccountId = T::AccountId;
-	type Call = <T as Config>::RuntimeCall;
-	type AdditionalSigned = u32;
-	type Pre = ();
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckSpecVersion<T> {
 	const IDENTIFIER: &'static str = "CheckSpecVersion";
-
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+	type Implicit = u32;
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
 		Ok(<Pallet<T>>::runtime_version().spec_version)
 	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_spec_version()
 	}
 }
+impl<T: Config + Send + Sync, Context> TransactionExtension<<T as Config>::RuntimeCall, Context>
+	for CheckSpecVersion<T>
+{
+	type Val = ();
+	type Pre = ();
+	impl_tx_ext_default!(<T as Config>::RuntimeCall; Context; validate prepare);
+}
diff --git a/substrate/frame/system/src/extensions/check_tx_version.rs b/substrate/frame/system/src/extensions/check_tx_version.rs
index 3f9d6a1903f..ee1d507e7bc 100644
--- a/substrate/frame/system/src/extensions/check_tx_version.rs
+++ b/substrate/frame/system/src/extensions/check_tx_version.rs
@@ -19,7 +19,8 @@ use crate::{Config, Pallet};
 use codec::{Decode, Encode};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, SignedExtension},
+	impl_tx_ext_default,
+	traits::{transaction_extension::TransactionExtensionBase, TransactionExtension},
 	transaction_validity::TransactionValidityError,
 };
 
@@ -46,29 +47,26 @@ impl<T: Config + Send + Sync> sp_std::fmt::Debug for CheckTxVersion<T> {
 }
 
 impl<T: Config + Send + Sync> CheckTxVersion<T> {
-	/// Create new `SignedExtension` to check transaction version.
+	/// Create new `TransactionExtension` to check transaction version.
 	pub fn new() -> Self {
 		Self(sp_std::marker::PhantomData)
 	}
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckTxVersion<T> {
-	type AccountId = T::AccountId;
-	type Call = <T as Config>::RuntimeCall;
-	type AdditionalSigned = u32;
-	type Pre = ();
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckTxVersion<T> {
 	const IDENTIFIER: &'static str = "CheckTxVersion";
-
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
+	type Implicit = u32;
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
 		Ok(<Pallet<T>>::runtime_version().transaction_version)
 	}
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
+	fn weight(&self) -> sp_weights::Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_tx_version()
 	}
 }
+impl<T: Config + Send + Sync, Context> TransactionExtension<<T as Config>::RuntimeCall, Context>
+	for CheckTxVersion<T>
+{
+	type Val = ();
+	type Pre = ();
+	impl_tx_ext_default!(<T as Config>::RuntimeCall; Context; validate prepare);
+}
diff --git a/substrate/frame/system/src/extensions/check_weight.rs b/substrate/frame/system/src/extensions/check_weight.rs
index 70d1e756332..5c35acfb3f3 100644
--- a/substrate/frame/system/src/extensions/check_weight.rs
+++ b/substrate/frame/system/src/extensions/check_weight.rs
@@ -23,9 +23,12 @@ use frame_support::{
 };
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension},
-	transaction_validity::{InvalidTransaction, TransactionValidity, TransactionValidityError},
-	DispatchResult,
+	traits::{
+		DispatchInfoOf, Dispatchable, PostDispatchInfoOf, TransactionExtension,
+		TransactionExtensionBase, ValidateResult,
+	},
+	transaction_validity::{InvalidTransaction, TransactionValidityError},
+	DispatchResult, ValidTransaction,
 };
 use sp_weights::Weight;
 
@@ -100,39 +103,43 @@ where
 		}
 	}
 
-	/// Creates new `SignedExtension` to check weight of the extrinsic.
+	/// Creates new `TransactionExtension` to check weight of the extrinsic.
 	pub fn new() -> Self {
 		Self(Default::default())
 	}
 
-	/// Do the pre-dispatch checks. This can be applied to both signed and unsigned.
+	/// Do the validate checks. This can be applied to both signed and unsigned.
 	///
-	/// It checks and notes the new weight and length.
-	pub fn do_pre_dispatch(
+	/// It only checks that the block weight and length limit will not exceed.
+	///
+	/// Returns the transaction validity and the next block length, to be used in `prepare`.
+	pub fn do_validate(
 		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
-	) -> Result<(), TransactionValidityError> {
+	) -> Result<(ValidTransaction, u32), TransactionValidityError> {
+		// ignore the next length. If they return `Ok`, then it is below the limit.
 		let next_len = Self::check_block_length(info, len)?;
-		let next_weight = Self::check_block_weight(info)?;
+		// during validation we skip block limit check. Since the `validate_transaction`
+		// call runs on an empty block anyway, by this we prevent `on_initialize` weight
+		// consumption from causing false negatives.
 		Self::check_extrinsic_weight(info)?;
 
-		crate::AllExtrinsicsLen::<T>::put(next_len);
-		crate::BlockWeight::<T>::put(next_weight);
-		Ok(())
+		Ok((Default::default(), next_len))
 	}
 
-	/// Do the validate checks. This can be applied to both signed and unsigned.
+	/// Do the pre-dispatch checks. This can be applied to both signed and unsigned.
 	///
-	/// It only checks that the block weight and length limit will not exceed.
-	pub fn do_validate(info: &DispatchInfoOf<T::RuntimeCall>, len: usize) -> TransactionValidity {
-		// ignore the next length. If they return `Ok`, then it is below the limit.
-		let _ = Self::check_block_length(info, len)?;
-		// during validation we skip block limit check. Since the `validate_transaction`
-		// call runs on an empty block anyway, by this we prevent `on_initialize` weight
-		// consumption from causing false negatives.
-		Self::check_extrinsic_weight(info)?;
+	/// It checks and notes the new weight and length.
+	pub fn do_prepare(
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		next_len: u32,
+	) -> Result<(), TransactionValidityError> {
+		let next_weight = Self::check_block_weight(info)?;
+		// Extrinsic weight already checked in `validate`.
 
-		Ok(Default::default())
+		crate::AllExtrinsicsLen::<T>::put(next_len);
+		crate::BlockWeight::<T>::put(next_weight);
+		Ok(())
 	}
 }
 
@@ -201,62 +208,55 @@ where
 	Ok(all_weight)
 }
 
-impl<T: Config + Send + Sync> SignedExtension for CheckWeight<T>
+impl<T: Config + Send + Sync> TransactionExtensionBase for CheckWeight<T> {
+	const IDENTIFIER: &'static str = "CheckWeight";
+	type Implicit = ();
+
+	fn weight(&self) -> Weight {
+		<T::ExtensionsWeightInfo as super::WeightInfo>::check_weight()
+	}
+}
+impl<T: Config + Send + Sync, Context> TransactionExtension<T::RuntimeCall, Context>
+	for CheckWeight<T>
 where
 	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
 {
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
 	type Pre = ();
-	const IDENTIFIER: &'static str = "CheckWeight";
-
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-
-	fn pre_dispatch(
-		self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<(), TransactionValidityError> {
-		Self::do_pre_dispatch(info, len)
-	}
+	type Val = u32; /* next block length */
 
 	fn validate(
 		&self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> TransactionValidity {
-		Self::do_validate(info, len)
-	}
-
-	fn pre_dispatch_unsigned(
-		_call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		origin: T::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
-	) -> Result<(), TransactionValidityError> {
-		Self::do_pre_dispatch(info, len)
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, T::RuntimeCall> {
+		let (validity, next_len) = Self::do_validate(info, len)?;
+		Ok((validity, next_len, origin))
 	}
 
-	fn validate_unsigned(
-		_call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> TransactionValidity {
-		Self::do_validate(info, len)
+	fn prepare(
+		self,
+		val: Self::Val,
+		_origin: &T::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		Self::do_prepare(info, val)
 	}
 
 	fn post_dispatch(
-		_pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		_pre: Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		_len: usize,
 		_result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
 		let unspent = post_info.calc_unspent(info);
 		if unspent.any_gt(Weight::zero()) {
@@ -301,6 +301,7 @@ mod tests {
 		AllExtrinsicsLen, BlockWeight, DispatchClass,
 	};
 	use frame_support::{assert_err, assert_ok, dispatch::Pays, weights::Weight};
+	use sp_runtime::traits::DispatchTransaction;
 	use sp_std::marker::PhantomData;
 
 	fn block_weights() -> crate::limits::BlockWeights {
@@ -338,7 +339,8 @@ mod tests {
 		}
 
 		check(|max, len| {
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(max, len));
+			let next_len = CheckWeight::<Test>::check_block_length(max, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(max, next_len));
 			assert_eq!(System::block_weight().total(), Weight::MAX);
 			assert!(System::block_weight().total().ref_time() > block_weight_limit().ref_time());
 		});
@@ -419,9 +421,11 @@ mod tests {
 
 			let len = 0_usize;
 
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&max_normal, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&max_normal, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&max_normal, next_len));
 			assert_eq!(System::block_weight().total(), Weight::from_parts(768, 0));
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&rest_operational, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&rest_operational, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&rest_operational, next_len));
 			assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX));
 			assert_eq!(System::block_weight().total(), block_weight_limit().set_proof_size(0));
 			// Checking single extrinsic should not take current block weight into account.
@@ -443,10 +447,12 @@ mod tests {
 
 			let len = 0_usize;
 
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&rest_operational, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&rest_operational, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&rest_operational, next_len));
 			// Extra 20 here from block execution + base extrinsic weight
 			assert_eq!(System::block_weight().total(), Weight::from_parts(266, 0));
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&max_normal, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&max_normal, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&max_normal, next_len));
 			assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX));
 			assert_eq!(System::block_weight().total(), block_weight_limit().set_proof_size(0));
 		});
@@ -469,16 +475,19 @@ mod tests {
 			};
 			let len = 0_usize;
 
+			let next_len = CheckWeight::<Test>::check_block_length(&dispatch_normal, len).unwrap();
 			assert_err!(
-				CheckWeight::<Test>::do_pre_dispatch(&dispatch_normal, len),
+				CheckWeight::<Test>::do_prepare(&dispatch_normal, next_len),
 				InvalidTransaction::ExhaustsResources
 			);
+			let next_len =
+				CheckWeight::<Test>::check_block_length(&dispatch_operational, len).unwrap();
 			// Thank goodness we can still do an operational transaction to possibly save the
 			// blockchain.
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&dispatch_operational, len));
+			assert_ok!(CheckWeight::<Test>::do_prepare(&dispatch_operational, next_len));
 			// Not too much though
 			assert_err!(
-				CheckWeight::<Test>::do_pre_dispatch(&dispatch_operational, len),
+				CheckWeight::<Test>::do_prepare(&dispatch_operational, next_len),
 				InvalidTransaction::ExhaustsResources
 			);
 			// Even with full block, validity of single transaction should be correct.
@@ -503,21 +512,35 @@ mod tests {
 				current_weight.set(normal_limit, DispatchClass::Normal)
 			});
 			// will not fit.
-			assert_err!(
-				CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &normal, len),
-				InvalidTransaction::ExhaustsResources
+			assert_eq!(
+				CheckWeight::<Test>(PhantomData)
+					.validate_and_prepare(Some(1).into(), CALL, &normal, len)
+					.unwrap_err(),
+				InvalidTransaction::ExhaustsResources.into()
 			);
 			// will fit.
-			assert_ok!(CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &op, len));
+			assert_ok!(CheckWeight::<Test>(PhantomData).validate_and_prepare(
+				Some(1).into(),
+				CALL,
+				&op,
+				len
+			));
 
 			// likewise for length limit.
 			let len = 100_usize;
 			AllExtrinsicsLen::<Test>::put(normal_length_limit());
-			assert_err!(
-				CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &normal, len),
-				InvalidTransaction::ExhaustsResources
+			assert_eq!(
+				CheckWeight::<Test>(PhantomData)
+					.validate_and_prepare(Some(1).into(), CALL, &normal, len)
+					.unwrap_err(),
+				InvalidTransaction::ExhaustsResources.into()
 			);
-			assert_ok!(CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &op, len));
+			assert_ok!(CheckWeight::<Test>(PhantomData).validate_and_prepare(
+				Some(1).into(),
+				CALL,
+				&op,
+				len
+			));
 		})
 	}
 
@@ -528,7 +551,12 @@ mod tests {
 			let normal_limit = normal_weight_limit().ref_time() as usize;
 			let reset_check_weight = |tx, s, f| {
 				AllExtrinsicsLen::<Test>::put(0);
-				let r = CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, tx, s);
+				let r = CheckWeight::<Test>(PhantomData).validate_and_prepare(
+					Some(1).into(),
+					CALL,
+					tx,
+					s,
+				);
 				if f {
 					assert!(r.is_err())
 				} else {
@@ -571,7 +599,12 @@ mod tests {
 				BlockWeight::<Test>::mutate(|current_weight| {
 					current_weight.set(s, DispatchClass::Normal)
 				});
-				let r = CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, i, len);
+				let r = CheckWeight::<Test>(PhantomData).validate_and_prepare(
+					Some(1).into(),
+					CALL,
+					i,
+					len,
+				);
 				if f {
 					assert!(r.is_err())
 				} else {
@@ -604,18 +637,22 @@ mod tests {
 					.set(Weight::from_parts(256, 0) - base_extrinsic, DispatchClass::Normal);
 			});
 
-			let pre = CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &info, len).unwrap();
+			let pre = CheckWeight::<Test>(PhantomData)
+				.validate_and_prepare(Some(1).into(), CALL, &info, len)
+				.unwrap()
+				.0;
 			assert_eq!(
 				BlockWeight::<Test>::get().total(),
 				info.weight + Weight::from_parts(256, 0)
 			);
 
 			assert_ok!(CheckWeight::<Test>::post_dispatch(
-				Some(pre),
+				pre,
 				&info,
 				&post_info,
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(
 				BlockWeight::<Test>::get().total(),
@@ -639,7 +676,10 @@ mod tests {
 				current_weight.set(Weight::from_parts(128, 0), DispatchClass::Normal);
 			});
 
-			let pre = CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &info, len).unwrap();
+			let pre = CheckWeight::<Test>(PhantomData)
+				.validate_and_prepare(Some(1).into(), CALL, &info, len)
+				.unwrap()
+				.0;
 			assert_eq!(
 				BlockWeight::<Test>::get().total(),
 				info.weight +
@@ -648,11 +688,12 @@ mod tests {
 			);
 
 			assert_ok!(CheckWeight::<Test>::post_dispatch(
-				Some(pre),
+				pre,
 				&info,
 				&post_info,
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(
 				BlockWeight::<Test>::get().total(),
@@ -672,7 +713,12 @@ mod tests {
 
 			// Initial weight from `weights.base_block`
 			assert_eq!(System::block_weight().total(), weights.base_block);
-			assert_ok!(CheckWeight::<Test>(PhantomData).pre_dispatch(&1, CALL, &free, len));
+			assert_ok!(CheckWeight::<Test>(PhantomData).validate_and_prepare(
+				Some(1).into(),
+				CALL,
+				&free,
+				len
+			));
 			assert_eq!(
 				System::block_weight().total(),
 				weights.get(DispatchClass::Normal).base_extrinsic + weights.base_block
@@ -696,9 +742,11 @@ mod tests {
 
 			let len = 0_usize;
 
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&max_normal, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&max_normal, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&max_normal, next_len));
 			assert_eq!(System::block_weight().total(), Weight::from_parts(768, 0));
-			assert_ok!(CheckWeight::<Test>::do_pre_dispatch(&mandatory, len));
+			let next_len = CheckWeight::<Test>::check_block_length(&mandatory, len).unwrap();
+			assert_ok!(CheckWeight::<Test>::do_prepare(&mandatory, next_len));
 			assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX));
 			assert_eq!(System::block_weight().total(), Weight::from_parts(1024 + 768, 0));
 			assert_eq!(CheckWeight::<Test>::check_extrinsic_weight(&mandatory), Ok(()));
diff --git a/substrate/frame/system/src/extensions/mod.rs b/substrate/frame/system/src/extensions/mod.rs
index a88c9fbf96e..d79104d2240 100644
--- a/substrate/frame/system/src/extensions/mod.rs
+++ b/substrate/frame/system/src/extensions/mod.rs
@@ -22,3 +22,6 @@ pub mod check_nonce;
 pub mod check_spec_version;
 pub mod check_tx_version;
 pub mod check_weight;
+pub mod weights;
+
+pub use weights::WeightInfo;
diff --git a/substrate/frame/system/src/extensions/weights.rs b/substrate/frame/system/src/extensions/weights.rs
new file mode 100644
index 00000000000..0d2fcb15ee6
--- /dev/null
+++ b/substrate/frame/system/src/extensions/weights.rs
@@ -0,0 +1,196 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `frame_system_extensions`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
+
+// Executed Command:
+// ./target/production/substrate-node
+// benchmark
+// pallet
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=frame_system_extensions
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/system/src/extensions/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use core::marker::PhantomData;
+
+/// Weight functions needed for `frame_system_extensions`.
+pub trait WeightInfo {
+	fn check_genesis() -> Weight;
+	fn check_mortality() -> Weight;
+	fn check_non_zero_sender() -> Weight;
+	fn check_nonce() -> Weight;
+	fn check_spec_version() -> Weight;
+	fn check_tx_version() -> Weight;
+	fn check_weight() -> Weight;
+}
+
+/// Weights for `frame_system_extensions` using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_876_000 picoseconds.
+		Weight::from_parts(4_160_000, 3509)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 6_296_000 picoseconds.
+		Weight::from_parts(6_523_000, 3509)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 449_000 picoseconds.
+		Weight::from_parts(527_000, 0)
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `101`
+		//  Estimated: `3593`
+		// Minimum execution time: 5_689_000 picoseconds.
+		Weight::from_parts(6_000_000, 3593)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 399_000 picoseconds.
+		Weight::from_parts(461_000, 0)
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 390_000 picoseconds.
+		Weight::from_parts(439_000, 0)
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1489`
+		// Minimum execution time: 4_375_000 picoseconds.
+		Weight::from_parts(4_747_000, 1489)
+			.saturating_add(T::DbWeight::get().reads(1_u64))
+			.saturating_add(T::DbWeight::get().writes(1_u64))
+	}
+}
+
+// For backwards compatibility and tests.
+impl WeightInfo for () {
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_genesis() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `54`
+		//  Estimated: `3509`
+		// Minimum execution time: 3_876_000 picoseconds.
+		Weight::from_parts(4_160_000, 3509)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+	}
+	/// Storage: `System::BlockHash` (r:1 w:0)
+	/// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`)
+	fn check_mortality() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `92`
+		//  Estimated: `3509`
+		// Minimum execution time: 6_296_000 picoseconds.
+		Weight::from_parts(6_523_000, 3509)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+	}
+	fn check_non_zero_sender() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 449_000 picoseconds.
+		Weight::from_parts(527_000, 0)
+	}
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	fn check_nonce() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `101`
+		//  Estimated: `3593`
+		// Minimum execution time: 5_689_000 picoseconds.
+		Weight::from_parts(6_000_000, 3593)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
+	}
+	fn check_spec_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 399_000 picoseconds.
+		Weight::from_parts(461_000, 0)
+	}
+	fn check_tx_version() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 390_000 picoseconds.
+		Weight::from_parts(439_000, 0)
+	}
+	/// Storage: `System::AllExtrinsicsLen` (r:1 w:1)
+	/// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	fn check_weight() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `24`
+		//  Estimated: `1489`
+		// Minimum execution time: 4_375_000 picoseconds.
+		Weight::from_parts(4_747_000, 1489)
+			.saturating_add(RocksDbWeight::get().reads(1_u64))
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
+	}
+}
diff --git a/substrate/frame/system/src/lib.rs b/substrate/frame/system/src/lib.rs
index 3b659916379..21393cb3e20 100644
--- a/substrate/frame/system/src/lib.rs
+++ b/substrate/frame/system/src/lib.rs
@@ -166,7 +166,7 @@ pub use extensions::{
 	check_genesis::CheckGenesis, check_mortality::CheckMortality,
 	check_non_zero_sender::CheckNonZeroSender, check_nonce::CheckNonce,
 	check_spec_version::CheckSpecVersion, check_tx_version::CheckTxVersion,
-	check_weight::CheckWeight,
+	check_weight::CheckWeight, WeightInfo as ExtensionsWeightInfo,
 };
 // Backward compatible re-export.
 pub use extensions::check_mortality::CheckMortality as CheckEra;
@@ -284,6 +284,7 @@ pub mod pallet {
 			type OnNewAccount = ();
 			type OnKilledAccount = ();
 			type SystemWeightInfo = ();
+			type ExtensionsWeightInfo = ();
 			type SS58Prefix = ();
 			type Version = ();
 			type BlockWeights = ();
@@ -356,6 +357,9 @@ pub mod pallet {
 			/// Weight information for the extrinsics of this pallet.
 			type SystemWeightInfo = ();
 
+			/// Weight information for the extensions of this pallet.
+			type ExtensionsWeightInfo = ();
+
 			/// This is used as an identifier of the chain.
 			type SS58Prefix = ();
 
@@ -563,8 +567,12 @@ pub mod pallet {
 		/// All resources should be cleaned up associated with the given account.
 		type OnKilledAccount: OnKilledAccount<Self::AccountId>;
 
+		/// Weight information for the extrinsics of this pallet.
 		type SystemWeightInfo: WeightInfo;
 
+		/// Weight information for the transaction extensions of this pallet.
+		type ExtensionsWeightInfo: extensions::WeightInfo;
+
 		/// The designated SS58 prefix of this chain.
 		///
 		/// This replaces the "ss58Format" property declared in the chain spec. Reason is
diff --git a/substrate/frame/system/src/offchain.rs b/substrate/frame/system/src/offchain.rs
index a019cfd666e..ee73e33fe31 100644
--- a/substrate/frame/system/src/offchain.rs
+++ b/substrate/frame/system/src/offchain.rs
@@ -79,6 +79,9 @@ pub struct SubmitTransaction<T: SendTransactionTypes<OverarchingCall>, Overarchi
 	_phantom: sp_std::marker::PhantomData<(T, OverarchingCall)>,
 }
 
+// TODO [#2415]: Avoid splitting call and the totally opaque `signature`; `CreateTransaction` trait
+// should provide something which impls `Encode`, which can be sent onwards to
+// `sp_io::offchain::submit_transaction`. There's no great need to split things up as in here.
 impl<T, LocalCall> SubmitTransaction<T, LocalCall>
 where
 	T: SendTransactionTypes<LocalCall>,
@@ -88,6 +91,8 @@ where
 		call: <T as SendTransactionTypes<LocalCall>>::OverarchingCall,
 		signature: Option<<T::Extrinsic as ExtrinsicT>::SignaturePayload>,
 	) -> Result<(), ()> {
+		// TODO: Use regular transaction API instead.
+		#[allow(deprecated)]
 		let xt = T::Extrinsic::new(call, signature).ok_or(())?;
 		sp_io::offchain::submit_transaction(xt.encode())
 	}
@@ -471,7 +476,7 @@ pub trait SendTransactionTypes<LocalCall> {
 ///
 /// This trait is meant to be implemented by the runtime and is responsible for constructing
 /// a payload to be signed and contained within the extrinsic.
-/// This will most likely include creation of `SignedExtra` (a set of `SignedExtensions`).
+/// This will most likely include creation of `TxExtension` (a tuple of `TransactionExtension`s).
 /// Note that the result can be altered by inspecting the `Call` (for instance adjusting
 /// fees, or mortality depending on the `pallet` being called).
 pub trait CreateSignedTransaction<LocalCall>:
@@ -621,14 +626,17 @@ mod tests {
 	use crate::mock::{RuntimeCall, Test as TestRuntime, CALL};
 	use codec::Decode;
 	use sp_core::offchain::{testing, TransactionPoolExt};
-	use sp_runtime::testing::{TestSignature, TestXt, UintAuthorityId};
+	use sp_runtime::{
+		generic::UncheckedExtrinsic,
+		testing::{TestSignature, UintAuthorityId},
+	};
 
 	impl SigningTypes for TestRuntime {
 		type Public = UintAuthorityId;
 		type Signature = TestSignature;
 	}
 
-	type Extrinsic = TestXt<RuntimeCall, ()>;
+	type Extrinsic = UncheckedExtrinsic<u64, RuntimeCall, (), ()>;
 
 	impl SendTransactionTypes<RuntimeCall> for TestRuntime {
 		type Extrinsic = Extrinsic;
@@ -693,7 +701,7 @@ mod tests {
 			let _tx3 = pool_state.write().transactions.pop().unwrap();
 			assert!(pool_state.read().transactions.is_empty());
 			let tx1 = Extrinsic::decode(&mut &*tx1).unwrap();
-			assert_eq!(tx1.signature, None);
+			assert!(tx1.is_inherent());
 		});
 	}
 
@@ -724,7 +732,7 @@ mod tests {
 			let tx1 = pool_state.write().transactions.pop().unwrap();
 			assert!(pool_state.read().transactions.is_empty());
 			let tx1 = Extrinsic::decode(&mut &*tx1).unwrap();
-			assert_eq!(tx1.signature, None);
+			assert!(tx1.is_inherent());
 		});
 	}
 
@@ -758,7 +766,7 @@ mod tests {
 			let _tx2 = pool_state.write().transactions.pop().unwrap();
 			assert!(pool_state.read().transactions.is_empty());
 			let tx1 = Extrinsic::decode(&mut &*tx1).unwrap();
-			assert_eq!(tx1.signature, None);
+			assert!(tx1.is_inherent());
 		});
 	}
 
@@ -790,7 +798,7 @@ mod tests {
 			let tx1 = pool_state.write().transactions.pop().unwrap();
 			assert!(pool_state.read().transactions.is_empty());
 			let tx1 = Extrinsic::decode(&mut &*tx1).unwrap();
-			assert_eq!(tx1.signature, None);
+			assert!(tx1.is_inherent());
 		});
 	}
 }
diff --git a/substrate/frame/system/src/weights.rs b/substrate/frame/system/src/weights.rs
index 41807dea1c5..bd64bbf3763 100644
--- a/substrate/frame/system/src/weights.rs
+++ b/substrate/frame/system/src/weights.rs
@@ -15,30 +15,31 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for frame_system
+//! Autogenerated weights for `frame_system`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-s7kdgajz-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=frame_system
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json
-// --pallet=frame-system
-// --chain=dev
-// --header=./HEADER-APACHE2
-// --output=./frame/system/src/weights.rs
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/system/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -48,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for frame_system.
+/// Weight functions needed for `frame_system`.
 pub trait WeightInfo {
 	fn remark(b: u32, ) -> Weight;
 	fn remark_with_event(b: u32, ) -> Weight;
@@ -61,7 +62,7 @@ pub trait WeightInfo {
 	fn apply_authorized_upgrade() -> Weight;
 }
 
-/// Weights for frame_system using the Substrate node and recommended hardware.
+/// Weights for `frame_system` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
 	/// The range of component `b` is `[0, 3932160]`.
@@ -69,84 +70,86 @@ impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_004_000 picoseconds.
-		Weight::from_parts(2_119_000, 0)
+		// Minimum execution time: 2_130_000 picoseconds.
+		Weight::from_parts(2_976_430, 0)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(386, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_032_000 picoseconds.
-		Weight::from_parts(8_097_000, 0)
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_455, 0).saturating_mul(b.into()))
+		// Minimum execution time: 5_690_000 picoseconds.
+		Weight::from_parts(15_071_416, 0)
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_387, 0).saturating_mul(b.into()))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a686561707061676573` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
 	fn set_heap_pages() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 4_446_000 picoseconds.
-		Weight::from_parts(4_782_000, 1485)
+		// Minimum execution time: 3_822_000 picoseconds.
+		Weight::from_parts(4_099_000, 1485)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a636f6465` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1)
+	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
+	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	fn set_code() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `1485`
-		// Minimum execution time: 84_000_503_000 picoseconds.
-		Weight::from_parts(87_586_619_000, 1485)
-			.saturating_add(T::DbWeight::get().reads(1_u64))
+		//  Measured:  `142`
+		//  Estimated: `67035`
+		// Minimum execution time: 81_512_045_000 picoseconds.
+		Weight::from_parts(82_321_281_000, 67035)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn set_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_086_000 picoseconds.
-		Weight::from_parts(2_175_000, 0)
-			// Standard Error: 1_056
-			.saturating_add(Weight::from_parts(841_511, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_074_000 picoseconds.
+		Weight::from_parts(2_137_000, 0)
+			// Standard Error: 879
+			.saturating_add(Weight::from_parts(797_224, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn kill_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_000_000 picoseconds.
-		Weight::from_parts(2_255_000, 0)
-			// Standard Error: 1_425
-			.saturating_add(Weight::from_parts(662_473, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_122_000 picoseconds.
+		Weight::from_parts(2_208_000, 0)
+			// Standard Error: 855
+			.saturating_add(Weight::from_parts(594_034, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `p` is `[0, 1000]`.
 	fn kill_prefix(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `115 + p * (69 ±0)`
-		//  Estimated: `128 + p * (70 ±0)`
-		// Minimum execution time: 4_189_000 picoseconds.
-		Weight::from_parts(4_270_000, 128)
-			// Standard Error: 2_296
-			.saturating_add(Weight::from_parts(1_389_650, 0).saturating_mul(p.into()))
+		//  Measured:  `129 + p * (69 ±0)`
+		//  Estimated: `135 + p * (70 ±0)`
+		// Minimum execution time: 3_992_000 picoseconds.
+		Weight::from_parts(4_170_000, 135)
+			// Standard Error: 1_377
+			.saturating_add(Weight::from_parts(1_267_892, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -157,114 +160,116 @@ impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 33_027_000 picoseconds.
-		Weight::from_parts(33_027_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(T::DbWeight::get().writes(1))
+		// Minimum execution time: 8_872_000 picoseconds.
+		Weight::from_parts(9_513_000, 0)
+			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	/// Storage: `System::AuthorizedUpgrade` (r:1 w:1)
 	/// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
+	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	/// Storage: `System::Digest` (r:1 w:1)
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	/// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	fn apply_authorized_upgrade() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `22`
-		//  Estimated: `1518`
-		// Minimum execution time: 118_101_992_000 picoseconds.
-		Weight::from_parts(118_101_992_000, 0)
-			.saturating_add(Weight::from_parts(0, 1518))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().writes(3))
+		//  Measured:  `164`
+		//  Estimated: `67035`
+		// Minimum execution time: 85_037_546_000 picoseconds.
+		Weight::from_parts(85_819_414_000, 67035)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_004_000 picoseconds.
-		Weight::from_parts(2_119_000, 0)
+		// Minimum execution time: 2_130_000 picoseconds.
+		Weight::from_parts(2_976_430, 0)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(390, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(386, 0).saturating_mul(b.into()))
 	}
 	/// The range of component `b` is `[0, 3932160]`.
 	fn remark_with_event(b: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 8_032_000 picoseconds.
-		Weight::from_parts(8_097_000, 0)
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_455, 0).saturating_mul(b.into()))
+		// Minimum execution time: 5_690_000 picoseconds.
+		Weight::from_parts(15_071_416, 0)
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_387, 0).saturating_mul(b.into()))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a686561707061676573` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1)
 	fn set_heap_pages() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 4_446_000 picoseconds.
-		Weight::from_parts(4_782_000, 1485)
+		// Minimum execution time: 3_822_000 picoseconds.
+		Weight::from_parts(4_099_000, 1485)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: System Digest (r:1 w:1)
-	/// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: unknown `0x3a636f6465` (r:0 w:1)
-	/// Proof Skipped: unknown `0x3a636f6465` (r:0 w:1)
+	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
+	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:1)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
+	/// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	fn set_code() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `1485`
-		// Minimum execution time: 84_000_503_000 picoseconds.
-		Weight::from_parts(87_586_619_000, 1485)
-			.saturating_add(RocksDbWeight::get().reads(1_u64))
+		//  Measured:  `142`
+		//  Estimated: `67035`
+		// Minimum execution time: 81_512_045_000 picoseconds.
+		Weight::from_parts(82_321_281_000, 67035)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn set_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_086_000 picoseconds.
-		Weight::from_parts(2_175_000, 0)
-			// Standard Error: 1_056
-			.saturating_add(Weight::from_parts(841_511, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_074_000 picoseconds.
+		Weight::from_parts(2_137_000, 0)
+			// Standard Error: 879
+			.saturating_add(Weight::from_parts(797_224, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `i` is `[0, 1000]`.
 	fn kill_storage(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_000_000 picoseconds.
-		Weight::from_parts(2_255_000, 0)
-			// Standard Error: 1_425
-			.saturating_add(Weight::from_parts(662_473, 0).saturating_mul(i.into()))
+		// Minimum execution time: 2_122_000 picoseconds.
+		Weight::from_parts(2_208_000, 0)
+			// Standard Error: 855
+			.saturating_add(Weight::from_parts(594_034, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
-	/// Storage: Skipped Metadata (r:0 w:0)
-	/// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Skipped::Metadata` (r:0 w:0)
+	/// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `p` is `[0, 1000]`.
 	fn kill_prefix(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `115 + p * (69 ±0)`
-		//  Estimated: `128 + p * (70 ±0)`
-		// Minimum execution time: 4_189_000 picoseconds.
-		Weight::from_parts(4_270_000, 128)
-			// Standard Error: 2_296
-			.saturating_add(Weight::from_parts(1_389_650, 0).saturating_mul(p.into()))
+		//  Measured:  `129 + p * (69 ±0)`
+		//  Estimated: `135 + p * (70 ±0)`
+		// Minimum execution time: 3_992_000 picoseconds.
+		Weight::from_parts(4_170_000, 135)
+			// Standard Error: 1_377
+			.saturating_add(Weight::from_parts(1_267_892, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into()))
@@ -275,25 +280,25 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 33_027_000 picoseconds.
-		Weight::from_parts(33_027_000, 0)
-			.saturating_add(Weight::from_parts(0, 0))
-			.saturating_add(RocksDbWeight::get().writes(1))
+		// Minimum execution time: 8_872_000 picoseconds.
+		Weight::from_parts(9_513_000, 0)
+			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	/// Storage: `System::AuthorizedUpgrade` (r:1 w:1)
 	/// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
+	/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
+	/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
 	/// Storage: `System::Digest` (r:1 w:1)
 	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
 	/// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	/// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1)
 	fn apply_authorized_upgrade() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `22`
-		//  Estimated: `1518`
-		// Minimum execution time: 118_101_992_000 picoseconds.
-		Weight::from_parts(118_101_992_000, 0)
-			.saturating_add(Weight::from_parts(0, 1518))
-			.saturating_add(RocksDbWeight::get().reads(2))
-			.saturating_add(RocksDbWeight::get().writes(3))
+		//  Measured:  `164`
+		//  Estimated: `67035`
+		// Minimum execution time: 85_037_546_000 picoseconds.
+		Weight::from_parts(85_819_414_000, 67035)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
 }
diff --git a/substrate/frame/timestamp/src/weights.rs b/substrate/frame/timestamp/src/weights.rs
index 46c54473486..2df68ba0f1e 100644
--- a/substrate/frame/timestamp/src/weights.rs
+++ b/substrate/frame/timestamp/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_timestamp
+//! Autogenerated weights for `pallet_timestamp`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/timestamp/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/timestamp/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,57 +49,57 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_timestamp.
+/// Weight functions needed for `pallet_timestamp`.
 pub trait WeightInfo {
 	fn set() -> Weight;
 	fn on_finalize() -> Weight;
 }
 
-/// Weights for pallet_timestamp using the Substrate node and recommended hardware.
+/// Weights for `pallet_timestamp` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Timestamp Now (r:1 w:1)
-	/// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe CurrentSlot (r:1 w:0)
-	/// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Timestamp::Now` (r:1 w:1)
+	/// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::CurrentSlot` (r:1 w:0)
+	/// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312`
+		//  Measured:  `345`
 		//  Estimated: `1493`
-		// Minimum execution time: 9_857_000 picoseconds.
-		Weight::from_parts(10_492_000, 1493)
+		// Minimum execution time: 8_417_000 picoseconds.
+		Weight::from_parts(8_932_000, 1493)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161`
+		//  Measured:  `194`
 		//  Estimated: `0`
-		// Minimum execution time: 4_175_000 picoseconds.
-		Weight::from_parts(4_334_000, 0)
+		// Minimum execution time: 3_911_000 picoseconds.
+		Weight::from_parts(4_092_000, 0)
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Timestamp Now (r:1 w:1)
-	/// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
-	/// Storage: Babe CurrentSlot (r:1 w:0)
-	/// Proof: Babe CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen)
+	/// Storage: `Timestamp::Now` (r:1 w:1)
+	/// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
+	/// Storage: `Babe::CurrentSlot` (r:1 w:0)
+	/// Proof: `Babe::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
 	fn set() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `312`
+		//  Measured:  `345`
 		//  Estimated: `1493`
-		// Minimum execution time: 9_857_000 picoseconds.
-		Weight::from_parts(10_492_000, 1493)
+		// Minimum execution time: 8_417_000 picoseconds.
+		Weight::from_parts(8_932_000, 1493)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `161`
+		//  Measured:  `194`
 		//  Estimated: `0`
-		// Minimum execution time: 4_175_000 picoseconds.
-		Weight::from_parts(4_334_000, 0)
+		// Minimum execution time: 3_911_000 picoseconds.
+		Weight::from_parts(4_092_000, 0)
 	}
 }
diff --git a/substrate/frame/tips/src/weights.rs b/substrate/frame/tips/src/weights.rs
index ec622866715..dbe1ed246ff 100644
--- a/substrate/frame/tips/src/weights.rs
+++ b/substrate/frame/tips/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_tips
+//! Autogenerated weights for `pallet_tips`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/tips/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/tips/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_tips.
+/// Weight functions needed for `pallet_tips`.
 pub trait WeightInfo {
 	fn report_awesome(r: u32, ) -> Weight;
 	fn retract_tip() -> Weight;
@@ -60,220 +59,220 @@ pub trait WeightInfo {
 	fn slash_tip(t: u32, ) -> Weight;
 }
 
-/// Weights for pallet_tips using the Substrate node and recommended hardware.
+/// Weights for `pallet_tips` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Tips Reasons (r:1 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Reasons` (r:1 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `r` is `[0, 300]`.
 	fn report_awesome(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `4`
 		//  Estimated: `3469`
-		// Minimum execution time: 29_576_000 picoseconds.
-		Weight::from_parts(30_722_650, 3469)
-			// Standard Error: 192
-			.saturating_add(Weight::from_parts(2_601, 0).saturating_mul(r.into()))
+		// Minimum execution time: 25_145_000 picoseconds.
+		Weight::from_parts(26_085_800, 3469)
+			// Standard Error: 216
+			.saturating_add(Weight::from_parts(5_121, 0).saturating_mul(r.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn retract_tip() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `221`
 		//  Estimated: `3686`
-		// Minimum execution time: 28_522_000 picoseconds.
-		Weight::from_parts(29_323_000, 3686)
+		// Minimum execution time: 25_302_000 picoseconds.
+		Weight::from_parts(26_229_000, 3686)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:1 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:0 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:1 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:0 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `r` is `[0, 300]`.
 	/// The range of component `t` is `[1, 13]`.
 	fn tip_new(r: u32, t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `526 + t * (64 ±0)`
 		//  Estimated: `3991 + t * (64 ±0)`
-		// Minimum execution time: 19_650_000 picoseconds.
-		Weight::from_parts(19_837_982, 3991)
-			// Standard Error: 151
-			.saturating_add(Weight::from_parts(1_746, 0).saturating_mul(r.into()))
-			// Standard Error: 3_588
-			.saturating_add(Weight::from_parts(102_359, 0).saturating_mul(t.into()))
+		// Minimum execution time: 16_600_000 picoseconds.
+		Weight::from_parts(17_071_638, 3991)
+			// Standard Error: 131
+			.saturating_add(Weight::from_parts(1_138, 0).saturating_mul(r.into()))
+			// Standard Error: 3_125
+			.saturating_add(Weight::from_parts(82_996, 0).saturating_mul(t.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into()))
 	}
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `747 + t * (112 ±0)`
 		//  Estimated: `4212 + t * (112 ±0)`
-		// Minimum execution time: 15_641_000 picoseconds.
-		Weight::from_parts(15_745_460, 4212)
-			// Standard Error: 5_106
-			.saturating_add(Weight::from_parts(229_475, 0).saturating_mul(t.into()))
+		// Minimum execution time: 13_972_000 picoseconds.
+		Weight::from_parts(14_269_356, 4212)
+			// Standard Error: 4_695
+			.saturating_add(Weight::from_parts(205_433, 0).saturating_mul(t.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into()))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn close_tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `786 + t * (112 ±0)`
 		//  Estimated: `4242 + t * (112 ±0)`
-		// Minimum execution time: 62_059_000 picoseconds.
-		Weight::from_parts(64_604_554, 4242)
-			// Standard Error: 11_818
-			.saturating_add(Weight::from_parts(116_297, 0).saturating_mul(t.into()))
+		// Minimum execution time: 51_878_000 picoseconds.
+		Weight::from_parts(54_513_477, 4242)
+			// Standard Error: 12_281
+			.saturating_add(Weight::from_parts(126_605, 0).saturating_mul(t.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into()))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn slash_tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `269`
 		//  Estimated: `3734`
-		// Minimum execution time: 14_133_000 picoseconds.
-		Weight::from_parts(14_957_547, 3734)
-			// Standard Error: 2_765
-			.saturating_add(Weight::from_parts(22_138, 0).saturating_mul(t.into()))
+		// Minimum execution time: 11_800_000 picoseconds.
+		Weight::from_parts(12_520_984, 3734)
+			// Standard Error: 2_360
+			.saturating_add(Weight::from_parts(28_777, 0).saturating_mul(t.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Tips Reasons (r:1 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Reasons` (r:1 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `r` is `[0, 300]`.
 	fn report_awesome(r: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `4`
 		//  Estimated: `3469`
-		// Minimum execution time: 29_576_000 picoseconds.
-		Weight::from_parts(30_722_650, 3469)
-			// Standard Error: 192
-			.saturating_add(Weight::from_parts(2_601, 0).saturating_mul(r.into()))
+		// Minimum execution time: 25_145_000 picoseconds.
+		Weight::from_parts(26_085_800, 3469)
+			// Standard Error: 216
+			.saturating_add(Weight::from_parts(5_121, 0).saturating_mul(r.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	fn retract_tip() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `221`
 		//  Estimated: `3686`
-		// Minimum execution time: 28_522_000 picoseconds.
-		Weight::from_parts(29_323_000, 3686)
+		// Minimum execution time: 25_302_000 picoseconds.
+		Weight::from_parts(26_229_000, 3686)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:1 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:0 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:1 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:0 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `r` is `[0, 300]`.
 	/// The range of component `t` is `[1, 13]`.
 	fn tip_new(r: u32, t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `526 + t * (64 ±0)`
 		//  Estimated: `3991 + t * (64 ±0)`
-		// Minimum execution time: 19_650_000 picoseconds.
-		Weight::from_parts(19_837_982, 3991)
-			// Standard Error: 151
-			.saturating_add(Weight::from_parts(1_746, 0).saturating_mul(r.into()))
-			// Standard Error: 3_588
-			.saturating_add(Weight::from_parts(102_359, 0).saturating_mul(t.into()))
+		// Minimum execution time: 16_600_000 picoseconds.
+		Weight::from_parts(17_071_638, 3991)
+			// Standard Error: 131
+			.saturating_add(Weight::from_parts(1_138, 0).saturating_mul(r.into()))
+			// Standard Error: 3_125
+			.saturating_add(Weight::from_parts(82_996, 0).saturating_mul(t.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into()))
 	}
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `747 + t * (112 ±0)`
 		//  Estimated: `4212 + t * (112 ±0)`
-		// Minimum execution time: 15_641_000 picoseconds.
-		Weight::from_parts(15_745_460, 4212)
-			// Standard Error: 5_106
-			.saturating_add(Weight::from_parts(229_475, 0).saturating_mul(t.into()))
+		// Minimum execution time: 13_972_000 picoseconds.
+		Weight::from_parts(14_269_356, 4212)
+			// Standard Error: 4_695
+			.saturating_add(Weight::from_parts(205_433, 0).saturating_mul(t.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into()))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Elections Members (r:1 w:0)
-	/// Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Elections::Members` (r:1 w:0)
+	/// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn close_tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `786 + t * (112 ±0)`
 		//  Estimated: `4242 + t * (112 ±0)`
-		// Minimum execution time: 62_059_000 picoseconds.
-		Weight::from_parts(64_604_554, 4242)
-			// Standard Error: 11_818
-			.saturating_add(Weight::from_parts(116_297, 0).saturating_mul(t.into()))
+		// Minimum execution time: 51_878_000 picoseconds.
+		Weight::from_parts(54_513_477, 4242)
+			// Standard Error: 12_281
+			.saturating_add(Weight::from_parts(126_605, 0).saturating_mul(t.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into()))
 	}
-	/// Storage: Tips Tips (r:1 w:1)
-	/// Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured)
-	/// Storage: Tips Reasons (r:0 w:1)
-	/// Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured)
+	/// Storage: `Tips::Tips` (r:1 w:1)
+	/// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`)
+	/// Storage: `Tips::Reasons` (r:0 w:1)
+	/// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`)
 	/// The range of component `t` is `[1, 13]`.
 	fn slash_tip(t: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `269`
 		//  Estimated: `3734`
-		// Minimum execution time: 14_133_000 picoseconds.
-		Weight::from_parts(14_957_547, 3734)
-			// Standard Error: 2_765
-			.saturating_add(Weight::from_parts(22_138, 0).saturating_mul(t.into()))
+		// Minimum execution time: 11_800_000 picoseconds.
+		Weight::from_parts(12_520_984, 3734)
+			// Standard Error: 2_360
+			.saturating_add(Weight::from_parts(28_777, 0).saturating_mul(t.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
diff --git a/substrate/frame/transaction-payment/Cargo.toml b/substrate/frame/transaction-payment/Cargo.toml
index 275e1c01f92..66e0bef1436 100644
--- a/substrate/frame/transaction-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/Cargo.toml
@@ -21,6 +21,7 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features =
 ] }
 scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
 serde = { optional = true, workspace = true, default-features = true }
+frame-benchmarking = { path = "../benchmarking", default-features = false, optional = true }
 frame-support = { path = "../support", default-features = false }
 frame-system = { path = "../system", default-features = false }
 sp-core = { path = "../../primitives/core", default-features = false }
@@ -36,6 +37,7 @@ pallet-balances = { path = "../balances" }
 default = ["std"]
 std = [
 	"codec/std",
+	"frame-benchmarking?/std",
 	"frame-support/std",
 	"frame-system/std",
 	"pallet-balances/std",
@@ -46,6 +48,13 @@ std = [
 	"sp-runtime/std",
 	"sp-std/std",
 ]
+runtime-benchmarks = [
+	"frame-benchmarking/runtime-benchmarks",
+	"frame-support/runtime-benchmarks",
+	"frame-system/runtime-benchmarks",
+	"pallet-balances/runtime-benchmarks",
+	"sp-runtime/runtime-benchmarks",
+]
 try-runtime = [
 	"frame-support/try-runtime",
 	"frame-system/try-runtime",
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml b/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml
index 7640cc815e5..528f29e8e4a 100644
--- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml
@@ -19,6 +19,7 @@ targets = ["x86_64-unknown-linux-gnu"]
 # Substrate dependencies
 sp-runtime = { path = "../../../primitives/runtime", default-features = false }
 sp-std = { path = "../../../primitives/std", default-features = false }
+frame-benchmarking = { path = "../../benchmarking", default-features = false, optional = true }
 frame-support = { path = "../../support", default-features = false }
 frame-system = { path = "../../system", default-features = false }
 pallet-asset-conversion = { path = "../../asset-conversion", default-features = false }
@@ -37,6 +38,7 @@ pallet-balances = { path = "../../balances" }
 default = ["std"]
 std = [
 	"codec/std",
+	"frame-benchmarking?/std",
 	"frame-support/std",
 	"frame-system/std",
 	"pallet-asset-conversion/std",
@@ -50,6 +52,16 @@ std = [
 	"sp-std/std",
 	"sp-storage/std",
 ]
+runtime-benchmarks = [
+	"frame-benchmarking/runtime-benchmarks",
+	"frame-support/runtime-benchmarks",
+	"frame-system/runtime-benchmarks",
+	"pallet-asset-conversion/runtime-benchmarks",
+	"pallet-assets/runtime-benchmarks",
+	"pallet-balances/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
+	"sp-runtime/runtime-benchmarks",
+]
 try-runtime = [
 	"frame-support/try-runtime",
 	"frame-system/try-runtime",
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/README.md b/substrate/frame/transaction-payment/asset-conversion-tx-payment/README.md
index eccba773673..fcd1527526e 100644
--- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/README.md
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/README.md
@@ -16,6 +16,6 @@ asset.
 ### Integration
 This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means
 you should include both pallets in your `construct_runtime` macro, but only include this
-pallet's [`SignedExtension`] ([`ChargeAssetTxPayment`]).
+pallet's [`TransactionExtension`] ([`ChargeAssetTxPayment`]).
 
 License: Apache-2.0
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/benchmarking.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/benchmarking.rs
new file mode 100644
index 00000000000..0bffb991e4a
--- /dev/null
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/benchmarking.rs
@@ -0,0 +1,125 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Benchmarks for Asset Conversion Tx Payment Pallet's transaction extension
+
+use super::*;
+use crate::Pallet;
+use frame_benchmarking::v2::*;
+use frame_support::{
+	dispatch::{DispatchInfo, PostDispatchInfo},
+	pallet_prelude::*,
+};
+use frame_system::RawOrigin;
+use sp_runtime::traits::{AsSystemOriginSigner, DispatchTransaction, Dispatchable};
+
+#[benchmarks(where
+	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+	AssetBalanceOf<T>: Send + Sync,
+	BalanceOf<T>: Send
+		+ Sync
+		+ From<u64>
+		+ Into<ChargeAssetBalanceOf<T>>
+		+ Into<ChargeAssetLiquidityOf<T>>
+		+ From<ChargeAssetLiquidityOf<T>>,
+	ChargeAssetIdOf<T>: Send + Sync + Default,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
+)]
+mod benchmarks {
+	use super::*;
+
+	#[benchmark]
+	fn charge_asset_tx_payment_zero() {
+		let caller: T::AccountId = whitelisted_caller();
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(0u64.into(), None);
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::zero(),
+			class: DispatchClass::Normal,
+			pays_fee: Pays::No,
+		};
+		let post_info = PostDispatchInfo { actual_weight: None, pays_fee: Pays::No };
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, 0, |_| Ok(post_info))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	#[benchmark]
+	fn charge_asset_tx_payment_native() {
+		let caller: T::AccountId = whitelisted_caller();
+		let (fun_asset_id, _) = <T as Config>::BenchmarkHelper::create_asset_id_parameter(1);
+		<T as Config>::BenchmarkHelper::setup_balances_and_pool(fun_asset_id, caller.clone());
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(10u64.into(), None);
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(10, 0),
+			class: DispatchClass::Operational,
+			pays_fee: Pays::Yes,
+		};
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(10, 0)),
+			pays_fee: Pays::Yes,
+		};
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, 0, |_| Ok(post_info))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	#[benchmark]
+	fn charge_asset_tx_payment_asset() {
+		let caller: T::AccountId = whitelisted_caller();
+		let (fun_asset_id, asset_id) = <T as Config>::BenchmarkHelper::create_asset_id_parameter(1);
+		<T as Config>::BenchmarkHelper::setup_balances_and_pool(fun_asset_id, caller.clone());
+
+		let tip = 10u64.into();
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(tip, Some(asset_id));
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(10, 0),
+			class: DispatchClass::Operational,
+			pays_fee: Pays::Yes,
+		};
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(10, 0)),
+			pays_fee: Pays::Yes,
+		};
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller.clone()).into(), &call, &info, 0, |_| Ok(
+					post_info
+				))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Runtime);
+}
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs
index ed0ed56e6e0..8ef7c2ba38e 100644
--- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs
@@ -20,8 +20,8 @@
 //!
 //! ## Overview
 //!
-//! This pallet provides a `SignedExtension` with an optional `AssetId` that specifies the asset
-//! to be used for payment (defaulting to the native token on `None`). It expects an
+//! This pallet provides a `TransactionExtension` with an optional `AssetId` that specifies the
+//! asset to be used for payment (defaulting to the native token on `None`). It expects an
 //! [`OnChargeAssetTransaction`] implementation analogous to [`pallet-transaction-payment`]. The
 //! included [`AssetConversionAdapter`] (implementing [`OnChargeAssetTransaction`]) determines the
 //! fee amount by converting the fee calculated by [`pallet-transaction-payment`] in the native
@@ -31,7 +31,7 @@
 //!
 //! This pallet does not have any dispatchable calls or storage. It wraps FRAME's Transaction
 //! Payment pallet and functions as a replacement. This means you should include both pallets in
-//! your `construct_runtime` macro, but only include this pallet's [`SignedExtension`]
+//! your `construct_runtime` macro, but only include this pallet's [`TransactionExtension`]
 //! ([`ChargeAssetTxPayment`]).
 //!
 //! ## Terminology
@@ -53,23 +53,29 @@ use frame_support::{
 	},
 	DefaultNoBound,
 };
-use pallet_transaction_payment::OnChargeTransaction;
+use pallet_transaction_payment::{ChargeTransactionPayment, OnChargeTransaction};
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension, Zero},
-	transaction_validity::{
-		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+	traits::{
+		AsSystemOriginSigner, DispatchInfoOf, Dispatchable, PostDispatchInfoOf,
+		TransactionExtension, TransactionExtensionBase, ValidateResult, Zero,
 	},
+	transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction},
 };
 
 #[cfg(test)]
 mod mock;
 #[cfg(test)]
 mod tests;
+pub mod weights;
+
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
 
 mod payment;
-use frame_support::traits::tokens::AssetId;
+use frame_support::{pallet_prelude::Weight, traits::tokens::AssetId};
 pub use payment::*;
+pub use weights::WeightInfo;
 
 /// Type aliases used for interaction with `OnChargeTransaction`.
 pub(crate) type OnChargeTransactionOf<T> =
@@ -125,11 +131,30 @@ pub mod pallet {
 		type Fungibles: Balanced<Self::AccountId>;
 		/// The actual transaction charging logic that charges the fees.
 		type OnChargeAssetTransaction: OnChargeAssetTransaction<Self>;
+		/// The weight information of this pallet.
+		type WeightInfo: WeightInfo;
+		#[cfg(feature = "runtime-benchmarks")]
+		/// Benchmark helper
+		type BenchmarkHelper: BenchmarkHelperTrait<
+			Self::AccountId,
+			<<Self as Config>::Fungibles as Inspect<Self::AccountId>>::AssetId,
+			<<Self as Config>::OnChargeAssetTransaction as OnChargeAssetTransaction<Self>>::AssetId,
+		>;
 	}
 
 	#[pallet::pallet]
 	pub struct Pallet<T>(_);
 
+	#[cfg(feature = "runtime-benchmarks")]
+	/// Helper trait to benchmark the `ChargeAssetTxPayment` transaction extension.
+	pub trait BenchmarkHelperTrait<AccountId, FunAssetIdParameter, AssetIdParameter> {
+		/// Returns the `AssetId` to be used in the liquidity pool by the benchmarking code.
+		fn create_asset_id_parameter(id: u32) -> (FunAssetIdParameter, AssetIdParameter);
+		/// Create a liquidity pool for a given asset and sufficiently endow accounts to benchmark
+		/// the extension.
+		fn setup_balances_and_pool(asset_id: FunAssetIdParameter, account: AccountId);
+	}
+
 	#[pallet::event]
 	#[pallet::generate_deposit(pub(super) fn deposit_event)]
 	pub enum Event<T: Config> {
@@ -179,9 +204,8 @@ where
 		who: &T::AccountId,
 		call: &T::RuntimeCall,
 		info: &DispatchInfoOf<T::RuntimeCall>,
-		len: usize,
+		fee: BalanceOf<T>,
 	) -> Result<(BalanceOf<T>, InitialPayment<T>), TransactionValidityError> {
-		let fee = pallet_transaction_payment::Pallet::<T>::compute_fee(len as u32, info, self.tip);
 		debug_assert!(self.tip <= fee, "tip should be included in the computed fee");
 		if fee.is_zero() {
 			Ok((fee, InitialPayment::Nothing))
@@ -225,9 +249,8 @@ impl<T: Config> sp_std::fmt::Debug for ChargeAssetTxPayment<T> {
 	}
 }
 
-impl<T: Config> SignedExtension for ChargeAssetTxPayment<T>
+impl<T: Config> TransactionExtensionBase for ChargeAssetTxPayment<T>
 where
-	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
 	AssetBalanceOf<T>: Send + Sync,
 	BalanceOf<T>: Send
 		+ Sync
@@ -238,109 +261,145 @@ where
 	ChargeAssetIdOf<T>: Send + Sync,
 {
 	const IDENTIFIER: &'static str = "ChargeAssetTxPayment";
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
+	type Implicit = ();
+
+	fn weight(&self) -> Weight {
+		if self.asset_id.is_some() {
+			<T as Config>::WeightInfo::charge_asset_tx_payment_asset()
+		} else {
+			<T as Config>::WeightInfo::charge_asset_tx_payment_native()
+		}
+	}
+}
+
+impl<T: Config, Context> TransactionExtension<T::RuntimeCall, Context> for ChargeAssetTxPayment<T>
+where
+	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+	AssetBalanceOf<T>: Send + Sync,
+	BalanceOf<T>: Send
+		+ Sync
+		+ From<u64>
+		+ Into<ChargeAssetBalanceOf<T>>
+		+ Into<ChargeAssetLiquidityOf<T>>
+		+ From<ChargeAssetLiquidityOf<T>>,
+	ChargeAssetIdOf<T>: Send + Sync,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
+{
+	type Val = (
+		// tip
+		BalanceOf<T>,
+		// who paid the fee
+		T::AccountId,
+		// transaction fee
+		BalanceOf<T>,
+	);
 	type Pre = (
 		// tip
 		BalanceOf<T>,
 		// who paid the fee
-		Self::AccountId,
+		T::AccountId,
 		// imbalance resulting from withdrawing the fee
 		InitialPayment<T>,
 		// asset_id for the transaction payment
 		Option<ChargeAssetIdOf<T>>,
 	);
 
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		origin: <T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
-	) -> TransactionValidity {
-		use pallet_transaction_payment::ChargeTransactionPayment;
-		let (fee, _) = self.withdraw_fee(who, call, info, len)?;
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, T::RuntimeCall> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
+		// Non-mutating call of `compute_fee` to calculate the fee used in the transaction priority.
+		let fee = pallet_transaction_payment::Pallet::<T>::compute_fee(len as u32, info, self.tip);
 		let priority = ChargeTransactionPayment::<T>::get_priority(info, len, self.tip, fee);
-		Ok(ValidTransaction { priority, ..Default::default() })
+		let validity = ValidTransaction { priority, ..Default::default() };
+		let val = (self.tip, who.clone(), fee);
+		Ok((validity, val, origin))
 	}
 
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
+		val: Self::Val,
+		_origin: &<T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &Context,
 	) -> Result<Self::Pre, TransactionValidityError> {
-		let (_fee, initial_payment) = self.withdraw_fee(who, call, info, len)?;
-		Ok((self.tip, who.clone(), initial_payment, self.asset_id))
+		let (tip, who, fee) = val;
+		// Mutating call of `withdraw_fee` to actually charge for the transaction.
+		let (_fee, initial_payment) = self.withdraw_fee(&who, call, info, fee)?;
+		Ok((tip, who, initial_payment, self.asset_id.clone()))
 	}
 
 	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		pre: Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		len: usize,
 		result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		if let Some((tip, who, initial_payment, asset_id)) = pre {
-			match initial_payment {
-				InitialPayment::Native(already_withdrawn) => {
-					debug_assert!(
-						asset_id.is_none(),
-						"For that payment type the `asset_id` should be None"
-					);
-					pallet_transaction_payment::ChargeTransactionPayment::<T>::post_dispatch(
-						Some((tip, who, already_withdrawn)),
+		let (tip, who, initial_payment, asset_id) = pre;
+		match initial_payment {
+			InitialPayment::Native(already_withdrawn) => {
+				debug_assert!(
+					asset_id.is_none(),
+					"For that payment type the `asset_id` should be None"
+				);
+				pallet_transaction_payment::ChargeTransactionPayment::<T>::post_dispatch(
+					(tip, who, already_withdrawn),
+					info,
+					post_info,
+					len,
+					result,
+					&(),
+				)?;
+			},
+			InitialPayment::Asset(already_withdrawn) => {
+				debug_assert!(
+					asset_id.is_some(),
+					"For that payment type the `asset_id` should be set"
+				);
+				let actual_fee = pallet_transaction_payment::Pallet::<T>::compute_actual_fee(
+					len as u32, info, post_info, tip,
+				);
+
+				if let Some(asset_id) = asset_id {
+					let (used_for_fee, received_exchanged, asset_consumed) = already_withdrawn;
+					let converted_fee = T::OnChargeAssetTransaction::correct_and_deposit_fee(
+						&who,
 						info,
 						post_info,
-						len,
-						result,
+						actual_fee.into(),
+						tip.into(),
+						used_for_fee.into(),
+						received_exchanged.into(),
+						asset_id.clone(),
+						asset_consumed.into(),
 					)?;
-				},
-				InitialPayment::Asset(already_withdrawn) => {
-					debug_assert!(
-						asset_id.is_some(),
-						"For that payment type the `asset_id` should be set"
-					);
-					let actual_fee = pallet_transaction_payment::Pallet::<T>::compute_actual_fee(
-						len as u32, info, post_info, tip,
-					);
-
-					if let Some(asset_id) = asset_id {
-						let (used_for_fee, received_exchanged, asset_consumed) = already_withdrawn;
-						let converted_fee = T::OnChargeAssetTransaction::correct_and_deposit_fee(
-							&who,
-							info,
-							post_info,
-							actual_fee.into(),
-							tip.into(),
-							used_for_fee.into(),
-							received_exchanged.into(),
-							asset_id.clone(),
-							asset_consumed.into(),
-						)?;
 
-						Pallet::<T>::deposit_event(Event::<T>::AssetTxFeePaid {
-							who,
-							actual_fee: converted_fee,
-							tip,
-							asset_id,
-						});
-					}
-				},
-				InitialPayment::Nothing => {
-					// `actual_fee` should be zero here for any signed extrinsic. It would be
-					// non-zero here in case of unsigned extrinsics as they don't pay fees but
-					// `compute_actual_fee` is not aware of them. In both cases it's fine to just
-					// move ahead without adjusting the fee, though, so we do nothing.
-					debug_assert!(tip.is_zero(), "tip should be zero if initial fee was zero.");
-				},
-			}
+					Pallet::<T>::deposit_event(Event::<T>::AssetTxFeePaid {
+						who,
+						actual_fee: converted_fee,
+						tip,
+						asset_id,
+					});
+				}
+			},
+			InitialPayment::Nothing => {
+				// `actual_fee` should be zero here for any signed extrinsic. It would be
+				// non-zero here in case of unsigned extrinsics as they don't pay fees but
+				// `compute_actual_fee` is not aware of them. In both cases it's fine to just
+				// move ahead without adjusting the fee, though, so we do nothing.
+				debug_assert!(tip.is_zero(), "tip should be zero if initial fee was zero.");
+			},
 		}
 
 		Ok(())
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs
index c8bf2eb8f44..853753d41cf 100644
--- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs
@@ -168,12 +168,12 @@ impl OnUnbalanced<pallet_balances::NegativeImbalance<Runtime>> for DealWithFees
 	}
 }
 
+#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig as pallet_transaction_payment::DefaultConfig)]
 impl pallet_transaction_payment::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type OnChargeTransaction = CurrencyAdapter<Balances, DealWithFees>;
 	type WeightToFee = WeightToFee;
 	type LengthToFee = TransactionByteFee;
-	type FeeMultiplierUpdate = ();
 	type OperationalFeeMultiplier = ConstU8<5>;
 }
 
@@ -269,4 +269,72 @@ impl Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type Fungibles = Assets;
 	type OnChargeAssetTransaction = AssetConversionAdapter<Balances, AssetConversion, Native>;
+	type WeightInfo = ();
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = Helper;
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub fn new_test_ext() -> sp_io::TestExternalities {
+	let base_weight = 5;
+	let balance_factor = 100;
+	crate::tests::ExtBuilder::default()
+		.balance_factor(balance_factor)
+		.base_weight(Weight::from_parts(base_weight, 0))
+		.build()
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub struct Helper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl BenchmarkHelperTrait<u64, u32, u32> for Helper {
+	fn create_asset_id_parameter(id: u32) -> (u32, u32) {
+		(id, id)
+	}
+
+	fn setup_balances_and_pool(asset_id: u32, account: u64) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		use sp_runtime::traits::StaticLookup;
+		assert_ok!(Assets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			42,   /* owner */
+			true, /* is_sufficient */
+			1,
+		));
+
+		let lp_provider = 12;
+		assert_ok!(Balances::force_set_balance(RuntimeOrigin::root(), lp_provider, u64::MAX / 2));
+		let lp_provider_account = <Runtime as system::Config>::Lookup::unlookup(lp_provider);
+		assert_ok!(Assets::mint_into(asset_id.into(), &lp_provider_account, u64::MAX / 2));
+
+		let token_1 = Box::new(NativeOrWithId::Native);
+		let token_2 = Box::new(NativeOrWithId::WithId(asset_id));
+		assert_ok!(AssetConversion::create_pool(
+			RuntimeOrigin::signed(lp_provider),
+			token_1.clone(),
+			token_2.clone()
+		));
+
+		assert_ok!(AssetConversion::add_liquidity(
+			RuntimeOrigin::signed(lp_provider),
+			token_1,
+			token_2,
+			(u32::MAX / 8).into(), // 1 desired
+			u32::MAX.into(),       // 2 desired
+			1,                     // 1 min
+			1,                     // 2 min
+			lp_provider_account,
+		));
+
+		use frame_support::traits::Currency;
+		let _ = Balances::deposit_creating(&account, u32::MAX.into());
+
+		let beneficiary = <Runtime as system::Config>::Lookup::unlookup(account);
+		let balance = 1000;
+
+		assert_ok!(Assets::mint_into(asset_id.into(), &beneficiary, balance));
+		assert_eq!(Assets::balance(asset_id, account), balance);
+	}
 }
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/tests.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/tests.rs
index 62faed269d3..619077c0a5e 100644
--- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/tests.rs
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/tests.rs
@@ -28,7 +28,10 @@ use frame_support::{
 use frame_system as system;
 use mock::{ExtrinsicBaseWeight, *};
 use pallet_balances::Call as BalancesCall;
-use sp_runtime::{traits::StaticLookup, BuildStorage};
+use sp_runtime::{
+	traits::{DispatchTransaction, StaticLookup},
+	BuildStorage,
+};
 
 const CALL: &<Runtime as frame_system::Config>::RuntimeCall =
 	&RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 2, value: 69 });
@@ -160,33 +163,35 @@ fn transaction_payment_in_native_possible() {
 		.build()
 		.execute_with(|| {
 			let len = 10;
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, None)
-				.pre_dispatch(&1, CALL, &info_from_weight(WEIGHT_5), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, None)
+				.validate_and_prepare(Some(1).into(), CALL, &info_from_weight(WEIGHT_5), len)
 				.unwrap();
 			let initial_balance = 10 * balance_factor;
 			assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_5),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10);
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(5 /* tipped */, None)
-				.pre_dispatch(&2, CALL, &info_from_weight(WEIGHT_100), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(5 /* tipped */, None)
+				.validate_and_prepare(Some(2).into(), CALL, &info_from_weight(WEIGHT_100), len)
 				.unwrap();
 			let initial_balance_for_2 = 20 * balance_factor;
 
 			assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 100 - 5);
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_100),
 				&post_info_from_weight(WEIGHT_50),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 50 - 5);
 		});
@@ -237,8 +242,8 @@ fn transaction_payment_in_asset_possible() {
 			let fee_in_asset = input_quote.unwrap();
 			assert_eq!(Assets::balance(asset_id, caller), balance);
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(WEIGHT_5), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_weight(WEIGHT_5), len)
 				.unwrap();
 			// assert that native balance is not used
 			assert_eq!(Balances::free_balance(caller), 10 * balance_factor);
@@ -247,11 +252,12 @@ fn transaction_payment_in_asset_possible() {
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_5), // estimated tx weight
 				&default_post_info(),        // weight actually used == estimated
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset);
@@ -289,12 +295,8 @@ fn transaction_payment_in_asset_fails_if_no_pool_for_that_asset() {
 			assert_eq!(Assets::balance(asset_id, caller), balance);
 
 			let len = 10;
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id)).pre_dispatch(
-				&caller,
-				CALL,
-				&info_from_weight(WEIGHT_5),
-				len,
-			);
+			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_weight(WEIGHT_5), len);
 
 			// As there is no pool in the dex set up for this asset, conversion should fail.
 			assert!(pre.is_err());
@@ -344,8 +346,8 @@ fn transaction_payment_without_fee() {
 			assert_eq!(input_quote, Some(201));
 
 			let fee_in_asset = input_quote.unwrap();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(WEIGHT_5), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_weight(WEIGHT_5), len)
 				.unwrap();
 
 			// assert that native balance is not used
@@ -363,11 +365,12 @@ fn transaction_payment_without_fee() {
 			assert_eq!(refund, 199);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_5),
 				&post_info_from_pays(Pays::No),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 
 			// caller should get refunded
@@ -419,8 +422,8 @@ fn asset_transaction_payment_with_tip_and_refund() {
 			assert_eq!(input_quote, Some(1206));
 
 			let fee_in_asset = input_quote.unwrap();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(tip, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(WEIGHT_100), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(tip, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_weight(WEIGHT_100), len)
 				.unwrap();
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset);
 
@@ -435,11 +438,12 @@ fn asset_transaction_payment_with_tip_and_refund() {
 			.unwrap();
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_100),
 				&post_info_from_weight(WEIGHT_50),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 
 			assert_eq!(TipUnbalancedAmount::get(), tip);
@@ -500,8 +504,8 @@ fn payment_from_account_with_only_assets() {
 			.unwrap();
 			assert_eq!(fee_in_asset, 301);
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(WEIGHT_5), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_weight(WEIGHT_5), len)
 				.unwrap();
 			assert_eq!(Balances::free_balance(caller), ed);
 			// check that fee was charged in the given asset
@@ -516,11 +520,12 @@ fn payment_from_account_with_only_assets() {
 			.unwrap();
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(WEIGHT_5),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset + refund);
 			assert_eq!(Balances::free_balance(caller), 0);
@@ -565,18 +570,19 @@ fn converted_fee_is_never_zero_if_input_fee_is_not() {
 
 			// there will be no conversion when the fee is zero
 			{
-				let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-					.pre_dispatch(&caller, CALL, &info_from_pays(Pays::No), len)
+				let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+					.validate_and_prepare(Some(caller).into(), CALL, &info_from_pays(Pays::No), len)
 					.unwrap();
 				// `Pays::No` implies there are no fees
 				assert_eq!(Assets::balance(asset_id, caller), balance);
 
 				assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-					Some(pre),
+					pre,
 					&info_from_pays(Pays::No),
 					&post_info_from_pays(Pays::No),
 					len,
-					&Ok(())
+					&Ok(()),
+					&()
 				));
 				assert_eq!(Assets::balance(asset_id, caller), balance);
 			}
@@ -591,17 +597,23 @@ fn converted_fee_is_never_zero_if_input_fee_is_not() {
 			)
 			.unwrap();
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_in_asset);
 		});
@@ -641,8 +653,8 @@ fn post_dispatch_fee_is_zero_if_pre_dispatch_fee_is_zero() {
 			// calculated fee is greater than 0
 			assert!(fee > 0);
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_pays(Pays::No), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_pays(Pays::No), len)
 				.unwrap();
 			// `Pays::No` implies no pre-dispatch fees
 
@@ -658,62 +670,12 @@ fn post_dispatch_fee_is_zero_if_pre_dispatch_fee_is_zero() {
 			// `Pays::Yes` on post-dispatch does not mean we pay (we never charge more than the
 			// initial fee)
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_pays(Pays::No),
 				&post_info_from_pays(Pays::Yes),
 				len,
-				&Ok(())
-			));
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-		});
-}
-
-#[test]
-fn post_dispatch_fee_is_zero_if_unsigned_pre_dispatch_fee_is_zero() {
-	let base_weight = 1;
-	ExtBuilder::default()
-		.balance_factor(100)
-		.base_weight(Weight::from_parts(base_weight, 0))
-		.build()
-		.execute_with(|| {
-			// create the asset
-			let asset_id = 1;
-			let min_balance = 100;
-			assert_ok!(Assets::force_create(
-				RuntimeOrigin::root(),
-				asset_id.into(),
-				42,   /* owner */
-				true, /* is_sufficient */
-				min_balance
-			));
-
-			// mint into the caller account
-			let caller = 333;
-			let beneficiary = <Runtime as system::Config>::Lookup::unlookup(caller);
-			let balance = 1000;
-
-			assert_ok!(Assets::mint_into(asset_id.into(), &beneficiary, balance));
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-
-			let weight = 1;
-			let len = 1;
-			ChargeAssetTxPayment::<Runtime>::pre_dispatch_unsigned(
-				CALL,
-				&info_from_weight(Weight::from_parts(weight, 0)),
-				len,
-			)
-			.unwrap();
-
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-
-			// `Pays::Yes` on post-dispatch does not mean we pay (we never charge more than the
-			// initial fee)
-			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				None,
-				&info_from_weight(Weight::from_parts(weight, 0)),
-				&post_info_from_pays(Pays::Yes),
-				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance);
 		});
diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs
new file mode 100644
index 00000000000..f95e49f8073
--- /dev/null
+++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs
@@ -0,0 +1,150 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_asset_conversion_tx_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
+
+// Executed Command:
+// ./target/production/substrate-node
+// benchmark
+// pallet
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=pallet_asset_conversion_tx_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use core::marker::PhantomData;
+
+/// Weight functions needed for `pallet_asset_conversion_tx_payment`.
+pub trait WeightInfo {
+	fn charge_asset_tx_payment_zero() -> Weight;
+	fn charge_asset_tx_payment_native() -> Weight;
+	fn charge_asset_tx_payment_asset() -> Weight;
+}
+
+/// Weights for `pallet_asset_conversion_tx_payment` using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 628_000 picoseconds.
+		Weight::from_parts(694_000, 0)
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 34_410_000 picoseconds.
+		Weight::from_parts(35_263_000, 1733)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `888`
+		//  Estimated: `6208`
+		// Minimum execution time: 112_432_000 picoseconds.
+		Weight::from_parts(113_992_000, 6208)
+			.saturating_add(T::DbWeight::get().reads(7_u64))
+			.saturating_add(T::DbWeight::get().writes(4_u64))
+	}
+}
+
+// For backwards compatibility and tests.
+impl WeightInfo for () {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 628_000 picoseconds.
+		Weight::from_parts(694_000, 0)
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 34_410_000 picoseconds.
+		Weight::from_parts(35_263_000, 1733)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `888`
+		//  Estimated: `6208`
+		// Minimum execution time: 112_432_000 picoseconds.
+		Weight::from_parts(113_992_000, 6208)
+			.saturating_add(RocksDbWeight::get().reads(7_u64))
+			.saturating_add(RocksDbWeight::get().writes(4_u64))
+	}
+}
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
index 1da3237df08..06d9c30792e 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
+++ b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml
@@ -66,6 +66,7 @@ runtime-benchmarks = [
 	"frame-system/runtime-benchmarks",
 	"pallet-assets/runtime-benchmarks",
 	"pallet-balances/runtime-benchmarks",
+	"pallet-transaction-payment/runtime-benchmarks",
 	"sp-runtime/runtime-benchmarks",
 ]
 try-runtime = [
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/README.md b/substrate/frame/transaction-payment/asset-tx-payment/README.md
index fc860347d85..933ce13b0ee 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/README.md
+++ b/substrate/frame/transaction-payment/asset-tx-payment/README.md
@@ -16,6 +16,6 @@ asset.
 ### Integration
 This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means
 you should include both pallets in your `construct_runtime` macro, but only include this
-pallet's [`SignedExtension`] ([`ChargeAssetTxPayment`]).
+pallet's [`TransactionExtension`] ([`ChargeAssetTxPayment`]).
 
 License: Apache-2.0
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/benchmarking.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/benchmarking.rs
new file mode 100644
index 00000000000..17e96e2b025
--- /dev/null
+++ b/substrate/frame/transaction-payment/asset-tx-payment/src/benchmarking.rs
@@ -0,0 +1,123 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Benchmarks for Asset Tx Payment Pallet's transaction extension
+
+use super::*;
+use crate::Pallet;
+use frame_benchmarking::v2::*;
+use frame_support::{
+	dispatch::{DispatchInfo, PostDispatchInfo},
+	pallet_prelude::*,
+};
+use frame_system::RawOrigin;
+use sp_runtime::traits::{AsSystemOriginSigner, DispatchTransaction, Dispatchable};
+
+#[benchmarks(where
+	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+	AssetBalanceOf<T>: Send + Sync,
+	BalanceOf<T>: Send + Sync + From<u64> + IsType<ChargeAssetBalanceOf<T>>,
+	ChargeAssetIdOf<T>: Send + Sync,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
+    Credit<T::AccountId, T::Fungibles>: IsType<ChargeAssetLiquidityOf<T>>,
+)]
+mod benchmarks {
+	use super::*;
+
+	#[benchmark]
+	fn charge_asset_tx_payment_zero() {
+		let caller: T::AccountId = whitelisted_caller();
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(0u32.into(), None);
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::zero(),
+			class: DispatchClass::Normal,
+			pays_fee: Pays::No,
+		};
+		let post_info = PostDispatchInfo { actual_weight: None, pays_fee: Pays::No };
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, 0, |_| Ok(post_info))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	#[benchmark]
+	fn charge_asset_tx_payment_native() {
+		let caller: T::AccountId = whitelisted_caller();
+		let (fun_asset_id, _) = <T as Config>::BenchmarkHelper::create_asset_id_parameter(1);
+		<T as Config>::BenchmarkHelper::setup_balances_and_pool(fun_asset_id, caller.clone());
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(10u32.into(), None);
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(10, 0),
+			class: DispatchClass::Operational,
+			pays_fee: Pays::Yes,
+		};
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(10, 0)),
+			pays_fee: Pays::Yes,
+		};
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller).into(), &call, &info, 0, |_| Ok(post_info))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	#[benchmark]
+	fn charge_asset_tx_payment_asset() {
+		let caller: T::AccountId = whitelisted_caller();
+		let (fun_asset_id, asset_id) = <T as Config>::BenchmarkHelper::create_asset_id_parameter(1);
+		<T as Config>::BenchmarkHelper::setup_balances_and_pool(
+			fun_asset_id.clone(),
+			caller.clone(),
+		);
+		let tip = 10u32.into();
+		let ext: ChargeAssetTxPayment<T> = ChargeAssetTxPayment::from(tip, Some(asset_id));
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(10, 0),
+			class: DispatchClass::Operational,
+			pays_fee: Pays::Yes,
+		};
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(10, 0)),
+			pays_fee: Pays::Yes,
+		};
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller.clone()).into(), &call, &info, 0, |_| Ok(
+					post_info
+				))
+				.unwrap()
+				.is_ok());
+		}
+	}
+
+	impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Runtime);
+}
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs
index 753fae747a3..991b5f31406 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs
+++ b/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs
@@ -31,7 +31,7 @@
 
 //! This pallet wraps FRAME's transaction payment pallet and functions as a replacement. This means
 //! you should include both pallets in your `construct_runtime` macro, but only include this
-//! pallet's [`SignedExtension`] ([`ChargeAssetTxPayment`]).
+//! pallet's [`TransactionExtension`] ([`ChargeAssetTxPayment`]).
 
 #![cfg_attr(not(feature = "std"), no_std)]
 
@@ -40,6 +40,7 @@ use sp_std::prelude::*;
 use codec::{Decode, Encode};
 use frame_support::{
 	dispatch::{DispatchInfo, DispatchResult, PostDispatchInfo},
+	pallet_prelude::Weight,
 	traits::{
 		tokens::{
 			fungibles::{Balanced, Credit, Inspect},
@@ -52,10 +53,11 @@ use frame_support::{
 use pallet_transaction_payment::OnChargeTransaction;
 use scale_info::TypeInfo;
 use sp_runtime::{
-	traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension, Zero},
-	transaction_validity::{
-		InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
+	traits::{
+		AsSystemOriginSigner, DispatchInfoOf, Dispatchable, PostDispatchInfoOf,
+		TransactionExtension, TransactionExtensionBase, Zero,
 	},
+	transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction},
 };
 
 #[cfg(test)]
@@ -63,8 +65,14 @@ mod mock;
 #[cfg(test)]
 mod tests;
 
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
+
 mod payment;
+pub mod weights;
+
 pub use payment::*;
+pub use weights::WeightInfo;
 
 /// Type aliases used for interaction with `OnChargeTransaction`.
 pub(crate) type OnChargeTransactionOf<T> =
@@ -120,11 +128,30 @@ pub mod pallet {
 		type Fungibles: Balanced<Self::AccountId>;
 		/// The actual transaction charging logic that charges the fees.
 		type OnChargeAssetTransaction: OnChargeAssetTransaction<Self>;
+		/// The weight information of this pallet.
+		type WeightInfo: WeightInfo;
+		#[cfg(feature = "runtime-benchmarks")]
+		/// Benchmark helper
+		type BenchmarkHelper: BenchmarkHelperTrait<
+			Self::AccountId,
+			<<Self as Config>::Fungibles as Inspect<Self::AccountId>>::AssetId,
+			<<Self as Config>::OnChargeAssetTransaction as OnChargeAssetTransaction<Self>>::AssetId,
+		>;
 	}
 
 	#[pallet::pallet]
 	pub struct Pallet<T>(_);
 
+	#[cfg(feature = "runtime-benchmarks")]
+	/// Helper trait to benchmark the `ChargeAssetTxPayment` transaction extension.
+	pub trait BenchmarkHelperTrait<AccountId, FunAssetIdParameter, AssetIdParameter> {
+		/// Returns the `AssetId` to be used in the liquidity pool by the benchmarking code.
+		fn create_asset_id_parameter(id: u32) -> (FunAssetIdParameter, AssetIdParameter);
+		/// Create a liquidity pool for a given asset and sufficiently endow accounts to benchmark
+		/// the extension.
+		fn setup_balances_and_pool(asset_id: FunAssetIdParameter, account: AccountId);
+	}
+
 	#[pallet::event]
 	#[pallet::generate_deposit(pub(super) fn deposit_event)]
 	pub enum Event<T: Config> {
@@ -172,9 +199,8 @@ where
 		who: &T::AccountId,
 		call: &T::RuntimeCall,
 		info: &DispatchInfoOf<T::RuntimeCall>,
-		len: usize,
+		fee: BalanceOf<T>,
 	) -> Result<(BalanceOf<T>, InitialPayment<T>), TransactionValidityError> {
-		let fee = pallet_transaction_payment::Pallet::<T>::compute_fee(len as u32, info, self.tip);
 		debug_assert!(self.tip <= fee, "tip should be included in the computed fee");
 		if fee.is_zero() {
 			Ok((fee, InitialPayment::Nothing))
@@ -209,104 +235,139 @@ impl<T: Config> sp_std::fmt::Debug for ChargeAssetTxPayment<T> {
 	}
 }
 
-impl<T: Config> SignedExtension for ChargeAssetTxPayment<T>
+impl<T: Config> TransactionExtensionBase for ChargeAssetTxPayment<T>
 where
-	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
 	AssetBalanceOf<T>: Send + Sync,
 	BalanceOf<T>: Send + Sync + From<u64> + IsType<ChargeAssetBalanceOf<T>>,
 	ChargeAssetIdOf<T>: Send + Sync,
 	Credit<T::AccountId, T::Fungibles>: IsType<ChargeAssetLiquidityOf<T>>,
 {
 	const IDENTIFIER: &'static str = "ChargeAssetTxPayment";
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
+	type Implicit = ();
+
+	fn weight(&self) -> Weight {
+		if self.asset_id.is_some() {
+			<T as Config>::WeightInfo::charge_asset_tx_payment_asset()
+		} else {
+			<T as Config>::WeightInfo::charge_asset_tx_payment_native()
+		}
+	}
+}
+
+impl<T: Config, Context> TransactionExtension<T::RuntimeCall, Context> for ChargeAssetTxPayment<T>
+where
+	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+	AssetBalanceOf<T>: Send + Sync,
+	BalanceOf<T>: Send + Sync + From<u64> + IsType<ChargeAssetBalanceOf<T>>,
+	ChargeAssetIdOf<T>: Send + Sync,
+	Credit<T::AccountId, T::Fungibles>: IsType<ChargeAssetLiquidityOf<T>>,
+	<T::RuntimeCall as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<T::AccountId> + Clone,
+{
+	type Val = (
+		// tip
+		BalanceOf<T>,
+		// who paid the fee
+		T::AccountId,
+		// transaction fee
+		BalanceOf<T>,
+	);
 	type Pre = (
 		// tip
 		BalanceOf<T>,
 		// who paid the fee
-		Self::AccountId,
+		T::AccountId,
 		// imbalance resulting from withdrawing the fee
 		InitialPayment<T>,
 		// asset_id for the transaction payment
 		Option<ChargeAssetIdOf<T>>,
 	);
 
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		origin: <T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		_call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <T::RuntimeCall as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
 		use pallet_transaction_payment::ChargeTransactionPayment;
-		let (fee, _) = self.withdraw_fee(who, call, info, len)?;
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
+		// Non-mutating call of `compute_fee` to calculate the fee used in the transaction priority.
+		let fee = pallet_transaction_payment::Pallet::<T>::compute_fee(len as u32, info, self.tip);
 		let priority = ChargeTransactionPayment::<T>::get_priority(info, len, self.tip, fee);
-		Ok(ValidTransaction { priority, ..Default::default() })
+		let val = (self.tip, who.clone(), fee);
+		let validity = ValidTransaction { priority, ..Default::default() };
+		Ok((validity, val, origin))
 	}
 
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
+		val: Self::Val,
+		_origin: &<T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &Context,
 	) -> Result<Self::Pre, TransactionValidityError> {
-		let (_fee, initial_payment) = self.withdraw_fee(who, call, info, len)?;
-		Ok((self.tip, who.clone(), initial_payment, self.asset_id))
+		let (tip, who, fee) = val;
+		// Mutating call of `withdraw_fee` to actually charge for the transaction.
+		let (_fee, initial_payment) = self.withdraw_fee(&who, call, info, fee)?;
+		Ok((tip, who, initial_payment, self.asset_id))
 	}
 
 	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		pre: Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		len: usize,
 		result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		if let Some((tip, who, initial_payment, asset_id)) = pre {
-			match initial_payment {
-				InitialPayment::Native(already_withdrawn) => {
-					pallet_transaction_payment::ChargeTransactionPayment::<T>::post_dispatch(
-						Some((tip, who, already_withdrawn)),
+		let (tip, who, initial_payment, asset_id) = pre;
+		match initial_payment {
+			InitialPayment::Native(already_withdrawn) => {
+				pallet_transaction_payment::ChargeTransactionPayment::<T>::post_dispatch(
+					(tip, who, already_withdrawn),
+					info,
+					post_info,
+					len,
+					result,
+					&(),
+				)?;
+			},
+			InitialPayment::Asset(already_withdrawn) => {
+				let actual_fee = pallet_transaction_payment::Pallet::<T>::compute_actual_fee(
+					len as u32, info, post_info, tip,
+				);
+
+				let (converted_fee, converted_tip) =
+					T::OnChargeAssetTransaction::correct_and_deposit_fee(
+						&who,
 						info,
 						post_info,
-						len,
-						result,
+						actual_fee.into(),
+						tip.into(),
+						already_withdrawn.into(),
 					)?;
-				},
-				InitialPayment::Asset(already_withdrawn) => {
-					let actual_fee = pallet_transaction_payment::Pallet::<T>::compute_actual_fee(
-						len as u32, info, post_info, tip,
-					);
-
-					let (converted_fee, converted_tip) =
-						T::OnChargeAssetTransaction::correct_and_deposit_fee(
-							&who,
-							info,
-							post_info,
-							actual_fee.into(),
-							tip.into(),
-							already_withdrawn.into(),
-						)?;
-					Pallet::<T>::deposit_event(Event::<T>::AssetTxFeePaid {
-						who,
-						actual_fee: converted_fee,
-						tip: converted_tip,
-						asset_id,
-					});
-				},
-				InitialPayment::Nothing => {
-					// `actual_fee` should be zero here for any signed extrinsic. It would be
-					// non-zero here in case of unsigned extrinsics as they don't pay fees but
-					// `compute_actual_fee` is not aware of them. In both cases it's fine to just
-					// move ahead without adjusting the fee, though, so we do nothing.
-					debug_assert!(tip.is_zero(), "tip should be zero if initial fee was zero.");
-				},
-			}
+				Pallet::<T>::deposit_event(Event::<T>::AssetTxFeePaid {
+					who,
+					actual_fee: converted_fee,
+					tip: converted_tip,
+					asset_id,
+				});
+			},
+			InitialPayment::Nothing => {
+				// `actual_fee` should be zero here for any signed extrinsic. It would be
+				// non-zero here in case of unsigned extrinsics as they don't pay fees but
+				// `compute_actual_fee` is not aware of them. In both cases it's fine to just
+				// move ahead without adjusting the fee, though, so we do nothing.
+				debug_assert!(tip.is_zero(), "tip should be zero if initial fee was zero.");
+			},
 		}
 
 		Ok(())
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs
index 1f335b4f6c4..bb484795e82 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs
+++ b/substrate/frame/transaction-payment/asset-tx-payment/src/mock.rs
@@ -136,12 +136,12 @@ impl WeightToFeeT for TransactionByteFee {
 	}
 }
 
+#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig as pallet_transaction_payment::DefaultConfig)]
 impl pallet_transaction_payment::Config for Runtime {
 	type RuntimeEvent = RuntimeEvent;
 	type OnChargeTransaction = CurrencyAdapter<Balances, ()>;
 	type WeightToFee = WeightToFee;
 	type LengthToFee = TransactionByteFee;
-	type FeeMultiplierUpdate = ();
 	type OperationalFeeMultiplier = ConstU8<5>;
 }
 
@@ -205,4 +205,56 @@ impl Config for Runtime {
 		pallet_assets::BalanceToAssetBalance<Balances, Runtime, ConvertInto>,
 		CreditToBlockAuthor,
 	>;
+	type WeightInfo = ();
+	#[cfg(feature = "runtime-benchmarks")]
+	type BenchmarkHelper = Helper;
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub fn new_test_ext() -> sp_io::TestExternalities {
+	let base_weight = 5;
+	let balance_factor = 100;
+	crate::tests::ExtBuilder::default()
+		.balance_factor(balance_factor)
+		.base_weight(Weight::from_parts(base_weight, 0))
+		.build()
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub struct Helper;
+
+#[cfg(feature = "runtime-benchmarks")]
+impl BenchmarkHelperTrait<u64, u32, u32> for Helper {
+	fn create_asset_id_parameter(id: u32) -> (u32, u32) {
+		(id.into(), id.into())
+	}
+
+	fn setup_balances_and_pool(asset_id: u32, account: u64) {
+		use frame_support::{assert_ok, traits::fungibles::Mutate};
+		use sp_runtime::traits::StaticLookup;
+		let min_balance = 1;
+		assert_ok!(Assets::force_create(
+			RuntimeOrigin::root(),
+			asset_id.into(),
+			42,   /* owner */
+			true, /* is_sufficient */
+			min_balance
+		));
+
+		// mint into the caller account
+		let caller = 2;
+		let beneficiary = <Runtime as system::Config>::Lookup::unlookup(caller);
+		let balance = 1000;
+		assert_ok!(Assets::mint_into(asset_id.into(), &beneficiary, balance));
+		assert_eq!(Assets::balance(asset_id, caller), balance);
+
+		use frame_support::traits::Currency;
+		let _ = Balances::deposit_creating(&account, u32::MAX.into());
+
+		let beneficiary = <Runtime as system::Config>::Lookup::unlookup(account);
+		let balance = 1000;
+
+		assert_ok!(Assets::mint_into(asset_id.into(), &beneficiary, balance));
+		assert_eq!(Assets::balance(asset_id, account), balance);
+	}
 }
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/tests.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/tests.rs
index 8df98ceda99..42b8f2cf5fa 100644
--- a/substrate/frame/transaction-payment/asset-tx-payment/src/tests.rs
+++ b/substrate/frame/transaction-payment/asset-tx-payment/src/tests.rs
@@ -25,7 +25,10 @@ use frame_support::{
 use frame_system as system;
 use mock::{ExtrinsicBaseWeight, *};
 use pallet_balances::Call as BalancesCall;
-use sp_runtime::{traits::StaticLookup, BuildStorage};
+use sp_runtime::{
+	traits::{DispatchTransaction, StaticLookup},
+	BuildStorage,
+};
 
 const CALL: &<Runtime as frame_system::Config>::RuntimeCall =
 	&RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 2, value: 69 });
@@ -116,33 +119,45 @@ fn transaction_payment_in_native_possible() {
 		.build()
 		.execute_with(|| {
 			let len = 10;
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, None)
-				.pre_dispatch(&1, CALL, &info_from_weight(Weight::from_parts(5, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, None)
+				.validate_and_prepare(
+					Some(1).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(5, 0)),
+					len,
+				)
 				.unwrap();
 			let initial_balance = 10 * balance_factor;
 			assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(5, 0)),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Balances::free_balance(1), initial_balance - 5 - 5 - 10);
 
-			let pre = ChargeAssetTxPayment::<Runtime>::from(5 /* tipped */, None)
-				.pre_dispatch(&2, CALL, &info_from_weight(Weight::from_parts(100, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(5 /* tipped */, None)
+				.validate_and_prepare(
+					Some(2).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(100, 0)),
+					len,
+				)
 				.unwrap();
 			let initial_balance_for_2 = 20 * balance_factor;
 			assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 100 - 5);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(100, 0)),
 				&post_info_from_weight(Weight::from_parts(50, 0)),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Balances::free_balance(2), initial_balance_for_2 - 5 - 10 - 50 - 5);
 		});
@@ -179,8 +194,13 @@ fn transaction_payment_in_asset_possible() {
 			// we convert the from weight to fee based on the ratio between asset min balance and
 			// existential deposit
 			let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			// assert that native balance is not used
 			assert_eq!(Balances::free_balance(caller), 10 * balance_factor);
@@ -189,11 +209,12 @@ fn transaction_payment_in_asset_possible() {
 			assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), 0);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee);
 			// check that the block author gets rewarded
@@ -232,8 +253,13 @@ fn transaction_payment_without_fee() {
 			// we convert the from weight to fee based on the ratio between asset min balance and
 			// existential deposit
 			let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			// assert that native balance is not used
 			assert_eq!(Balances::free_balance(caller), 10 * balance_factor);
@@ -242,11 +268,12 @@ fn transaction_payment_without_fee() {
 			assert_eq!(Assets::balance(asset_id, BLOCK_AUTHOR), 0);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&post_info_from_pays(Pays::No),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			// caller should be refunded
 			assert_eq!(Assets::balance(asset_id, caller), balance);
@@ -287,18 +314,24 @@ fn asset_transaction_payment_with_tip_and_refund() {
 			// existential deposit
 			let fee_with_tip =
 				(base_weight + weight + len as u64 + tip) * min_balance / ExistentialDeposit::get();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(tip, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(tip, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee_with_tip);
 
 			let final_weight = 50;
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&post_info_from_weight(Weight::from_parts(final_weight, 0)),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			let final_fee =
 				fee_with_tip - (weight - final_weight) * min_balance / ExistentialDeposit::get();
@@ -339,19 +372,25 @@ fn payment_from_account_with_only_assets() {
 			// we convert the from weight to fee based on the ratio between asset min balance and
 			// existential deposit
 			let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get();
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			assert_eq!(Balances::free_balance(caller), 0);
 			// check that fee was charged in the given asset
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance - fee);
 			assert_eq!(Balances::free_balance(caller), 0);
@@ -372,7 +411,12 @@ fn payment_only_with_existing_sufficient_asset() {
 			let len = 10;
 			// pre_dispatch fails for non-existent asset
 			assert!(ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len
+				)
 				.is_err());
 
 			// create the non-sufficient asset
@@ -386,7 +430,12 @@ fn payment_only_with_existing_sufficient_asset() {
 			));
 			// pre_dispatch fails for non-sufficient asset
 			assert!(ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len
+				)
 				.is_err());
 		});
 }
@@ -424,33 +473,40 @@ fn converted_fee_is_never_zero_if_input_fee_is_not() {
 			// naive fee calculation would round down to zero
 			assert_eq!(fee, 0);
 			{
-				let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-					.pre_dispatch(&caller, CALL, &info_from_pays(Pays::No), len)
+				let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+					.validate_and_prepare(Some(caller).into(), CALL, &info_from_pays(Pays::No), len)
 					.unwrap();
 				// `Pays::No` still implies no fees
 				assert_eq!(Assets::balance(asset_id, caller), balance);
 
 				assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-					Some(pre),
+					pre,
 					&info_from_pays(Pays::No),
 					&post_info_from_pays(Pays::No),
 					len,
-					&Ok(())
+					&Ok(()),
+					&()
 				));
 				assert_eq!(Assets::balance(asset_id, caller), balance);
 			}
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_weight(Weight::from_parts(weight, 0)), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(
+					Some(caller).into(),
+					CALL,
+					&info_from_weight(Weight::from_parts(weight, 0)),
+					len,
+				)
 				.unwrap();
 			// check that at least one coin was charged in the given asset
 			assert_eq!(Assets::balance(asset_id, caller), balance - 1);
 
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_weight(Weight::from_parts(weight, 0)),
 				&default_post_info(),
 				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance - 1);
 		});
@@ -488,8 +544,8 @@ fn post_dispatch_fee_is_zero_if_pre_dispatch_fee_is_zero() {
 			let fee = (base_weight + weight + len as u64) * min_balance / ExistentialDeposit::get();
 			// calculated fee is greater than 0
 			assert!(fee > 0);
-			let pre = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
-				.pre_dispatch(&caller, CALL, &info_from_pays(Pays::No), len)
+			let (pre, _) = ChargeAssetTxPayment::<Runtime>::from(0, Some(asset_id))
+				.validate_and_prepare(Some(caller).into(), CALL, &info_from_pays(Pays::No), len)
 				.unwrap();
 			// `Pays::No` implies no pre-dispatch fees
 			assert_eq!(Assets::balance(asset_id, caller), balance);
@@ -503,60 +559,12 @@ fn post_dispatch_fee_is_zero_if_pre_dispatch_fee_is_zero() {
 			// `Pays::Yes` on post-dispatch does not mean we pay (we never charge more than the
 			// initial fee)
 			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				Some(pre),
+				pre,
 				&info_from_pays(Pays::No),
 				&post_info_from_pays(Pays::Yes),
 				len,
-				&Ok(())
-			));
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-		});
-}
-
-#[test]
-fn post_dispatch_fee_is_zero_if_unsigned_pre_dispatch_fee_is_zero() {
-	let base_weight = 1;
-	ExtBuilder::default()
-		.balance_factor(100)
-		.base_weight(Weight::from_parts(base_weight, 0))
-		.build()
-		.execute_with(|| {
-			// create the asset
-			let asset_id = 1;
-			let min_balance = 100;
-			assert_ok!(Assets::force_create(
-				RuntimeOrigin::root(),
-				asset_id.into(),
-				42,   /* owner */
-				true, /* is_sufficient */
-				min_balance
-			));
-
-			// mint into the caller account
-			let caller = 333;
-			let beneficiary = <Runtime as system::Config>::Lookup::unlookup(caller);
-			let balance = 100;
-			assert_ok!(Assets::mint_into(asset_id.into(), &beneficiary, balance));
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-			let weight = 1;
-			let len = 1;
-			ChargeAssetTxPayment::<Runtime>::pre_dispatch_unsigned(
-				CALL,
-				&info_from_weight(Weight::from_parts(weight, 0)),
-				len,
-			)
-			.unwrap();
-
-			assert_eq!(Assets::balance(asset_id, caller), balance);
-
-			// `Pays::Yes` on post-dispatch does not mean we pay (we never charge more than the
-			// initial fee)
-			assert_ok!(ChargeAssetTxPayment::<Runtime>::post_dispatch(
-				None,
-				&info_from_weight(Weight::from_parts(weight, 0)),
-				&post_info_from_pays(Pays::Yes),
-				len,
-				&Ok(())
+				&Ok(()),
+				&()
 			));
 			assert_eq!(Assets::balance(asset_id, caller), balance);
 		});
diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs
new file mode 100644
index 00000000000..1af1c94177d
--- /dev/null
+++ b/substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs
@@ -0,0 +1,146 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_asset_tx_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
+
+// Executed Command:
+// ./target/production/substrate-node
+// benchmark
+// pallet
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=pallet_asset_tx_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/transaction-payment/asset-tx-payment/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use core::marker::PhantomData;
+
+/// Weight functions needed for `pallet_asset_tx_payment`.
+pub trait WeightInfo {
+	fn charge_asset_tx_payment_zero() -> Weight;
+	fn charge_asset_tx_payment_native() -> Weight;
+	fn charge_asset_tx_payment_asset() -> Weight;
+}
+
+/// Weights for `pallet_asset_tx_payment` using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 542_000 picoseconds.
+		Weight::from_parts(597_000, 0)
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 33_162_000 picoseconds.
+		Weight::from_parts(34_716_000, 1733)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `747`
+		//  Estimated: `3675`
+		// Minimum execution time: 44_230_000 picoseconds.
+		Weight::from_parts(45_297_000, 3675)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
+	}
+}
+
+// For backwards compatibility and tests.
+impl WeightInfo for () {
+	fn charge_asset_tx_payment_zero() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `0`
+		//  Estimated: `0`
+		// Minimum execution time: 542_000 picoseconds.
+		Weight::from_parts(597_000, 0)
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_native() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 33_162_000 picoseconds.
+		Weight::from_parts(34_716_000, 1733)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+	}
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:1 w:1)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_asset_tx_payment_asset() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `747`
+		//  Estimated: `3675`
+		// Minimum execution time: 44_230_000 picoseconds.
+		Weight::from_parts(45_297_000, 3675)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
+	}
+}
diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs b/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs
index 6c34c26ce92..9810ea08c79 100644
--- a/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs
+++ b/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs
@@ -21,7 +21,7 @@
 //!
 //! ## Overview
 //!
-//! It does this by wrapping an existing [`SignedExtension`] implementation (e.g.
+//! It does this by wrapping an existing [`TransactionExtension`] implementation (e.g.
 //! [`pallet-transaction-payment`]) and checking if the dispatchable is feeless before applying the
 //! wrapped extension. If the dispatchable is indeed feeless, the extension is skipped and a custom
 //! event is emitted instead. Otherwise, the extension is applied as usual.
@@ -31,7 +31,8 @@
 //!
 //! This pallet wraps an existing transaction payment pallet. This means you should both pallets
 //! in your `construct_runtime` macro and include this pallet's
-//! [`SignedExtension`] ([`SkipCheckIfFeeless`]) that would accept the existing one as an argument.
+//! [`TransactionExtension`] ([`SkipCheckIfFeeless`]) that would accept the existing one as an
+//! argument.
 
 #![cfg_attr(not(feature = "std"), no_std)]
 
@@ -42,7 +43,10 @@ use frame_support::{
 };
 use scale_info::{StaticTypeInfo, TypeInfo};
 use sp_runtime::{
-	traits::{DispatchInfoOf, PostDispatchInfoOf, SignedExtension},
+	traits::{
+		DispatchInfoOf, OriginOf, PostDispatchInfoOf, TransactionExtension,
+		TransactionExtensionBase, ValidateResult,
+	},
 	transaction_validity::TransactionValidityError,
 };
 
@@ -70,11 +74,11 @@ pub mod pallet {
 	#[pallet::generate_deposit(pub(super) fn deposit_event)]
 	pub enum Event<T: Config> {
 		/// A transaction fee was skipped.
-		FeeSkipped { who: T::AccountId },
+		FeeSkipped { origin: <T::RuntimeOrigin as OriginTrait>::PalletsOrigin },
 	}
 }
 
-/// A [`SignedExtension`] that skips the wrapped extension if the dispatchable is feeless.
+/// A [`TransactionExtension`] that skips the wrapped extension if the dispatchable is feeless.
 #[derive(Encode, Decode, Clone, Eq, PartialEq)]
 pub struct SkipCheckIfFeeless<T, S>(pub S, sp_std::marker::PhantomData<T>);
 
@@ -103,53 +107,96 @@ impl<T, S> From<S> for SkipCheckIfFeeless<T, S> {
 	}
 }
 
-impl<T: Config + Send + Sync, S: SignedExtension<AccountId = T::AccountId>> SignedExtension
+pub enum Intermediate<T, O> {
+	/// The wrapped extension should be applied.
+	Apply(T),
+	/// The wrapped extension should be skipped.
+	Skip(O),
+}
+use Intermediate::*;
+
+impl<T: Config + Send + Sync, S: TransactionExtensionBase> TransactionExtensionBase
 	for SkipCheckIfFeeless<T, S>
-where
-	S::Call: CheckIfFeeless<Origin = frame_system::pallet_prelude::OriginFor<T>>,
 {
-	type AccountId = T::AccountId;
-	type Call = S::Call;
-	type AdditionalSigned = S::AdditionalSigned;
-	type Pre = (Self::AccountId, Option<<S as SignedExtension>::Pre>);
 	// From the outside this extension should be "invisible", because it just extends the wrapped
 	// extension with an extra check in `pre_dispatch` and `post_dispatch`. Thus, we should forward
 	// the identifier of the wrapped extension to let wallets see this extension as it would only be
 	// the wrapped extension itself.
 	const IDENTIFIER: &'static str = S::IDENTIFIER;
+	type Implicit = S::Implicit;
+
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+		self.0.implicit()
+	}
 
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
-		self.0.additional_signed()
+	fn weight(&self) -> frame_support::weights::Weight {
+		self.0.weight()
 	}
+}
 
-	fn pre_dispatch(
+impl<T: Config + Send + Sync, Context, S: TransactionExtension<T::RuntimeCall, Context>>
+	TransactionExtension<T::RuntimeCall, Context> for SkipCheckIfFeeless<T, S>
+where
+	T::RuntimeCall: CheckIfFeeless<Origin = frame_system::pallet_prelude::OriginFor<T>>,
+{
+	type Val = Intermediate<S::Val, <OriginOf<T::RuntimeCall> as OriginTrait>::PalletsOrigin>;
+	type Pre = Intermediate<S::Pre, <OriginOf<T::RuntimeCall> as OriginTrait>::PalletsOrigin>;
+
+	fn validate(
+		&self,
+		origin: OriginOf<T::RuntimeCall>,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		len: usize,
+		context: &mut Context,
+		self_implicit: S::Implicit,
+		inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, T::RuntimeCall> {
+		if call.is_feeless(&origin) {
+			Ok((Default::default(), Skip(origin.caller().clone()), origin))
+		} else {
+			let (x, y, z) = self.0.validate(
+				origin,
+				call,
+				info,
+				len,
+				context,
+				self_implicit,
+				inherited_implication,
+			)?;
+			Ok((x, Apply(y), z))
+		}
+	}
+
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		val: Self::Val,
+		origin: &OriginOf<T::RuntimeCall>,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
+		context: &Context,
 	) -> Result<Self::Pre, TransactionValidityError> {
-		if call.is_feeless(&<T as frame_system::Config>::RuntimeOrigin::signed(who.clone())) {
-			Ok((who.clone(), None))
-		} else {
-			Ok((who.clone(), Some(self.0.pre_dispatch(who, call, info, len)?)))
+		match val {
+			Apply(val) => self.0.prepare(val, origin, call, info, len, context).map(Apply),
+			Skip(origin) => Ok(Skip(origin)),
 		}
 	}
 
 	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		pre: Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		len: usize,
 		result: &DispatchResult,
+		context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		if let Some(pre) = pre {
-			if let Some(pre) = pre.1 {
-				S::post_dispatch(Some(pre), info, post_info, len, result)?;
-			} else {
-				Pallet::<T>::deposit_event(Event::<T>::FeeSkipped { who: pre.0 });
-			}
+		match pre {
+			Apply(pre) => S::post_dispatch(pre, info, post_info, len, result, context),
+			Skip(origin) => {
+				Pallet::<T>::deposit_event(Event::<T>::FeeSkipped { origin });
+				Ok(())
+			},
 		}
-		Ok(())
 	}
 }
diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs b/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs
index 17c4c773997..06948de4c3c 100644
--- a/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs
+++ b/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs
@@ -18,9 +18,12 @@ use crate as pallet_skip_feeless_payment;
 
 use frame_support::{derive_impl, parameter_types};
 use frame_system as system;
+use sp_runtime::{
+	impl_tx_ext_default,
+	traits::{OriginOf, TransactionExtension},
+};
 
 type Block = frame_system::mocking::MockBlock<Runtime>;
-type AccountId = u64;
 
 #[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
 impl frame_system::Config for Runtime {
@@ -38,21 +41,22 @@ parameter_types! {
 #[derive(Clone, Eq, PartialEq, Debug, Encode, Decode, TypeInfo)]
 pub struct DummyExtension;
 
-impl SignedExtension for DummyExtension {
-	type AccountId = AccountId;
-	type Call = RuntimeCall;
-	type AdditionalSigned = ();
-	type Pre = ();
+impl TransactionExtensionBase for DummyExtension {
 	const IDENTIFIER: &'static str = "DummyExtension";
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-	fn pre_dispatch(
+	type Implicit = ();
+}
+impl<C> TransactionExtension<RuntimeCall, C> for DummyExtension {
+	type Val = ();
+	type Pre = ();
+	impl_tx_ext_default!(RuntimeCall; C; validate);
+	fn prepare(
 		self,
-		_who: &Self::AccountId,
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		_val: Self::Val,
+		_origin: &OriginOf<RuntimeCall>,
+		_call: &RuntimeCall,
+		_info: &DispatchInfoOf<RuntimeCall>,
 		_len: usize,
+		_context: &C,
 	) -> Result<Self::Pre, TransactionValidityError> {
 		PreDispatchCount::mutate(|c| *c += 1);
 		Ok(())
diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/src/tests.rs b/substrate/frame/transaction-payment/skip-feeless-payment/src/tests.rs
index 4b4dd699741..96b4af7e203 100644
--- a/substrate/frame/transaction-payment/skip-feeless-payment/src/tests.rs
+++ b/substrate/frame/transaction-payment/skip-feeless-payment/src/tests.rs
@@ -16,18 +16,19 @@
 use super::*;
 use crate::mock::{pallet_dummy::Call, DummyExtension, PreDispatchCount, Runtime, RuntimeCall};
 use frame_support::dispatch::DispatchInfo;
+use sp_runtime::traits::DispatchTransaction;
 
 #[test]
 fn skip_feeless_payment_works() {
 	let call = RuntimeCall::DummyPallet(Call::<Runtime>::aux { data: 1 });
 	SkipCheckIfFeeless::<Runtime, DummyExtension>::from(DummyExtension)
-		.pre_dispatch(&0, &call, &DispatchInfo::default(), 0)
+		.validate_and_prepare(Some(0).into(), &call, &DispatchInfo::default(), 0)
 		.unwrap();
 	assert_eq!(PreDispatchCount::get(), 1);
 
 	let call = RuntimeCall::DummyPallet(Call::<Runtime>::aux { data: 0 });
 	SkipCheckIfFeeless::<Runtime, DummyExtension>::from(DummyExtension)
-		.pre_dispatch(&0, &call, &DispatchInfo::default(), 0)
+		.validate_and_prepare(Some(0).into(), &call, &DispatchInfo::default(), 0)
 		.unwrap();
 	assert_eq!(PreDispatchCount::get(), 1);
 }
diff --git a/substrate/frame/transaction-payment/src/benchmarking.rs b/substrate/frame/transaction-payment/src/benchmarking.rs
new file mode 100644
index 00000000000..d63c5a7d746
--- /dev/null
+++ b/substrate/frame/transaction-payment/src/benchmarking.rs
@@ -0,0 +1,81 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Benchmarks for Transaction Payment Pallet's transaction extension
+
+use super::*;
+use crate::Pallet;
+use frame_benchmarking::v2::*;
+use frame_support::dispatch::{DispatchInfo, PostDispatchInfo};
+use frame_system::{EventRecord, RawOrigin};
+use sp_runtime::traits::{DispatchTransaction, Dispatchable};
+
+fn assert_last_event<T: Config>(generic_event: <T as Config>::RuntimeEvent) {
+	let events = frame_system::Pallet::<T>::events();
+	let system_event: <T as frame_system::Config>::RuntimeEvent = generic_event.into();
+	// compare to the last event record
+	let EventRecord { event, .. } = &events[events.len() - 1];
+	assert_eq!(event, &system_event);
+}
+
+#[benchmarks(where
+	T: Config,
+	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
+    BalanceOf<T>: Send + Sync + From<u64>,
+)]
+mod benchmarks {
+	use super::*;
+
+	#[benchmark]
+	fn charge_transaction_payment() {
+		let caller: T::AccountId = whitelisted_caller();
+		<T::OnChargeTransaction as OnChargeTransaction<T>>::endow_account(
+			&caller,
+			<T::OnChargeTransaction as OnChargeTransaction<T>>::minimum_balance() * 1000.into(),
+		);
+		let tip = <T::OnChargeTransaction as OnChargeTransaction<T>>::minimum_balance();
+		let ext: ChargeTransactionPayment<T> = ChargeTransactionPayment::from(tip);
+		let inner = frame_system::Call::remark { remark: vec![] };
+		let call = T::RuntimeCall::from(inner);
+		let info = DispatchInfo {
+			weight: Weight::from_parts(100, 0),
+			class: DispatchClass::Operational,
+			pays_fee: Pays::Yes,
+		};
+		let post_info = PostDispatchInfo {
+			actual_weight: Some(Weight::from_parts(10, 0)),
+			pays_fee: Pays::Yes,
+		};
+
+		#[block]
+		{
+			assert!(ext
+				.test_run(RawOrigin::Signed(caller.clone()).into(), &call, &info, 10, |_| Ok(
+					post_info
+				))
+				.unwrap()
+				.is_ok());
+		}
+
+		let actual_fee = Pallet::<T>::compute_actual_fee(10, &info, &post_info, tip);
+		assert_last_event::<T>(
+			Event::<T>::TransactionFeePaid { who: caller, actual_fee, tip }.into(),
+		);
+	}
+
+	impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Runtime);
+}
diff --git a/substrate/frame/transaction-payment/src/lib.rs b/substrate/frame/transaction-payment/src/lib.rs
index efadfd60bdd..6b17616bdc7 100644
--- a/substrate/frame/transaction-payment/src/lib.rs
+++ b/substrate/frame/transaction-payment/src/lib.rs
@@ -62,23 +62,28 @@ pub use payment::*;
 use sp_runtime::{
 	traits::{
 		Convert, DispatchInfoOf, Dispatchable, One, PostDispatchInfoOf, SaturatedConversion,
-		Saturating, SignedExtension, Zero,
+		Saturating, TransactionExtension, TransactionExtensionBase, Zero,
 	},
 	transaction_validity::{
-		TransactionPriority, TransactionValidity, TransactionValidityError, ValidTransaction,
+		InvalidTransaction, TransactionPriority, TransactionValidityError, ValidTransaction,
 	},
 	FixedPointNumber, FixedU128, Perbill, Perquintill, RuntimeDebug,
 };
 use sp_std::prelude::*;
 pub use types::{FeeDetails, InclusionFee, RuntimeDispatchInfo};
+pub use weights::WeightInfo;
 
 #[cfg(test)]
 mod mock;
 #[cfg(test)]
 mod tests;
 
+#[cfg(feature = "runtime-benchmarks")]
+mod benchmarking;
+
 mod payment;
 mod types;
+pub mod weights;
 
 /// Fee multiplier.
 pub type Multiplier = FixedU128;
@@ -335,6 +340,7 @@ pub mod pallet {
 			type RuntimeEvent = ();
 			type FeeMultiplierUpdate = ();
 			type OperationalFeeMultiplier = ();
+			type WeightInfo = ();
 		}
 	}
 
@@ -387,6 +393,9 @@ pub mod pallet {
 		/// transactions.
 		#[pallet::constant]
 		type OperationalFeeMultiplier: Get<u8>;
+
+		/// The weight information of this pallet.
+		type WeightInfo: WeightInfo;
 	}
 
 	#[pallet::type_value]
@@ -507,11 +516,11 @@ impl<T: Config> Pallet<T> {
 		// a very very little potential gain in the future.
 		let dispatch_info = <Extrinsic as GetDispatchInfo>::get_dispatch_info(&unchecked_extrinsic);
 
-		let partial_fee = if unchecked_extrinsic.is_signed().unwrap_or(false) {
-			Self::compute_fee(len, &dispatch_info, 0u32.into())
-		} else {
-			// Unsigned extrinsics have no partial fee.
+		let partial_fee = if unchecked_extrinsic.is_bare() {
+			// Bare extrinsics have no partial fee.
 			0u32.into()
+		} else {
+			Self::compute_fee(len, &dispatch_info, 0u32.into())
 		};
 
 		let DispatchInfo { weight, class, .. } = dispatch_info;
@@ -531,11 +540,11 @@ impl<T: Config> Pallet<T> {
 
 		let tip = 0u32.into();
 
-		if unchecked_extrinsic.is_signed().unwrap_or(false) {
-			Self::compute_fee_details(len, &dispatch_info, tip)
-		} else {
-			// Unsigned extrinsics have no inclusion fee.
+		if unchecked_extrinsic.is_bare() {
+			// Bare extrinsics have no inclusion fee.
 			FeeDetails { inclusion_fee: None, tip }
+		} else {
+			Self::compute_fee_details(len, &dispatch_info, tip)
 		}
 	}
 
@@ -714,7 +723,7 @@ where
 		who: &T::AccountId,
 		call: &T::RuntimeCall,
 		info: &DispatchInfoOf<T::RuntimeCall>,
-		len: usize,
+		fee: BalanceOf<T>,
 	) -> Result<
 		(
 			BalanceOf<T>,
@@ -723,7 +732,6 @@ where
 		TransactionValidityError,
 	> {
 		let tip = self.0;
-		let fee = Pallet::<T>::compute_fee(len as u32, info, tip);
 
 		<<T as Config>::OnChargeTransaction as OnChargeTransaction<T>>::withdraw_fee(
 			who, call, info, fee, tip,
@@ -731,6 +739,22 @@ where
 		.map(|i| (fee, i))
 	}
 
+	fn can_withdraw_fee(
+		&self,
+		who: &T::AccountId,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		len: usize,
+	) -> Result<BalanceOf<T>, TransactionValidityError> {
+		let tip = self.0;
+		let fee = Pallet::<T>::compute_fee(len as u32, info, tip);
+
+		<<T as Config>::OnChargeTransaction as OnChargeTransaction<T>>::can_withdraw_fee(
+			who, call, info, fee, tip,
+		)?;
+		Ok(fee)
+	}
+
 	/// Get an appropriate priority for a transaction with the given `DispatchInfo`, encoded length
 	/// and user-included tip.
 	///
@@ -817,67 +841,93 @@ impl<T: Config> sp_std::fmt::Debug for ChargeTransactionPayment<T> {
 	}
 }
 
-impl<T: Config> SignedExtension for ChargeTransactionPayment<T>
+impl<T: Config> TransactionExtensionBase for ChargeTransactionPayment<T> {
+	const IDENTIFIER: &'static str = "ChargeTransactionPayment";
+	type Implicit = ();
+
+	fn weight(&self) -> Weight {
+		T::WeightInfo::charge_transaction_payment()
+	}
+}
+
+impl<T: Config, Context> TransactionExtension<T::RuntimeCall, Context>
+	for ChargeTransactionPayment<T>
 where
 	BalanceOf<T>: Send + Sync + From<u64>,
 	T::RuntimeCall: Dispatchable<Info = DispatchInfo, PostInfo = PostDispatchInfo>,
 {
-	const IDENTIFIER: &'static str = "ChargeTransactionPayment";
-	type AccountId = T::AccountId;
-	type Call = T::RuntimeCall;
-	type AdditionalSigned = ();
+	type Val = (
+		// tip
+		BalanceOf<T>,
+		// who paid the fee
+		T::AccountId,
+		// computed fee
+		BalanceOf<T>,
+	);
 	type Pre = (
 		// tip
 		BalanceOf<T>,
-		// who paid the fee - this is an option to allow for a Default impl.
-		Self::AccountId,
+		// who paid the fee
+		T::AccountId,
 		// imbalance resulting from withdrawing the fee
 		<<T as Config>::OnChargeTransaction as OnChargeTransaction<T>>::LiquidityInfo,
 	);
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
 
 	fn validate(
 		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
+		origin: <T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
 		len: usize,
-	) -> TransactionValidity {
-		let (final_fee, _) = self.withdraw_fee(who, call, info, len)?;
+		_context: &mut Context,
+		_: (),
+		_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <T::RuntimeCall as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
+		let who = frame_system::ensure_signed(origin.clone())
+			.map_err(|_| InvalidTransaction::BadSigner)?;
+		let final_fee = self.can_withdraw_fee(&who, call, info, len)?;
 		let tip = self.0;
-		Ok(ValidTransaction {
-			priority: Self::get_priority(info, len, tip, final_fee),
-			..Default::default()
-		})
+		Ok((
+			ValidTransaction {
+				priority: Self::get_priority(info, len, tip, final_fee),
+				..Default::default()
+			},
+			(self.0, who, final_fee),
+			origin,
+		))
 	}
 
-	fn pre_dispatch(
+	fn prepare(
 		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
+		val: Self::Val,
+		_origin: &<T::RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &T::RuntimeCall,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		_len: usize,
+		_context: &Context,
 	) -> Result<Self::Pre, TransactionValidityError> {
-		let (_fee, imbalance) = self.withdraw_fee(who, call, info, len)?;
-		Ok((self.0, who.clone(), imbalance))
+		let (tip, who, fee) = val;
+		// Mutating call to `withdraw_fee` to actually charge for the transaction.
+		let (_final_fee, imbalance) = self.withdraw_fee(&who, call, info, fee)?;
+		Ok((tip, who, imbalance))
 	}
 
 	fn post_dispatch(
-		maybe_pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
+		(tip, who, imbalance): Self::Pre,
+		info: &DispatchInfoOf<T::RuntimeCall>,
+		post_info: &PostDispatchInfoOf<T::RuntimeCall>,
 		len: usize,
 		_result: &DispatchResult,
+		_context: &Context,
 	) -> Result<(), TransactionValidityError> {
-		if let Some((tip, who, imbalance)) = maybe_pre {
-			let actual_fee = Pallet::<T>::compute_actual_fee(len as u32, info, post_info, tip);
-			T::OnChargeTransaction::correct_and_deposit_fee(
-				&who, info, post_info, actual_fee, tip, imbalance,
-			)?;
-			Pallet::<T>::deposit_event(Event::<T>::TransactionFeePaid { who, actual_fee, tip });
-		}
+		let actual_fee = Pallet::<T>::compute_actual_fee(len as u32, info, post_info, tip);
+		T::OnChargeTransaction::correct_and_deposit_fee(
+			&who, info, post_info, actual_fee, tip, imbalance,
+		)?;
+		Pallet::<T>::deposit_event(Event::<T>::TransactionFeePaid { who, actual_fee, tip });
 		Ok(())
 	}
 }
diff --git a/substrate/frame/transaction-payment/src/mock.rs b/substrate/frame/transaction-payment/src/mock.rs
index 1ca2e3d7347..eda234ffcae 100644
--- a/substrate/frame/transaction-payment/src/mock.rs
+++ b/substrate/frame/transaction-payment/src/mock.rs
@@ -157,4 +157,14 @@ impl Config for Runtime {
 	type WeightToFee = WeightToFee;
 	type LengthToFee = TransactionByteFee;
 	type FeeMultiplierUpdate = ();
+	type WeightInfo = ();
+}
+
+#[cfg(feature = "runtime-benchmarks")]
+pub fn new_test_ext() -> sp_io::TestExternalities {
+	crate::tests::ExtBuilder::default()
+		.base_weight(Weight::from_parts(100, 0))
+		.byte_fee(10)
+		.balance_factor(0)
+		.build()
 }
diff --git a/substrate/frame/transaction-payment/src/payment.rs b/substrate/frame/transaction-payment/src/payment.rs
index 886683f2e0b..a13e73b50b0 100644
--- a/substrate/frame/transaction-payment/src/payment.rs
+++ b/substrate/frame/transaction-payment/src/payment.rs
@@ -20,7 +20,7 @@ use crate::Config;
 
 use core::marker::PhantomData;
 use sp_runtime::{
-	traits::{DispatchInfoOf, PostDispatchInfoOf, Saturating, Zero},
+	traits::{CheckedSub, DispatchInfoOf, PostDispatchInfoOf, Saturating, Zero},
 	transaction_validity::InvalidTransaction,
 };
 
@@ -51,6 +51,17 @@ pub trait OnChargeTransaction<T: Config> {
 		tip: Self::Balance,
 	) -> Result<Self::LiquidityInfo, TransactionValidityError>;
 
+	/// Check if the predicted fee from the transaction origin can be withdrawn.
+	///
+	/// Note: The `fee` already includes the `tip`.
+	fn can_withdraw_fee(
+		who: &T::AccountId,
+		call: &T::RuntimeCall,
+		dispatch_info: &DispatchInfoOf<T::RuntimeCall>,
+		fee: Self::Balance,
+		tip: Self::Balance,
+	) -> Result<(), TransactionValidityError>;
+
 	/// After the transaction was executed the actual fee can be calculated.
 	/// This function should refund any overpaid fees and optionally deposit
 	/// the corrected amount.
@@ -64,6 +75,12 @@ pub trait OnChargeTransaction<T: Config> {
 		tip: Self::Balance,
 		already_withdrawn: Self::LiquidityInfo,
 	) -> Result<(), TransactionValidityError>;
+
+	#[cfg(feature = "runtime-benchmarks")]
+	fn endow_account(who: &T::AccountId, amount: Self::Balance);
+
+	#[cfg(feature = "runtime-benchmarks")]
+	fn minimum_balance() -> Self::Balance;
 }
 
 /// Implements the transaction payment for a pallet implementing the `Currency`
@@ -121,6 +138,33 @@ where
 		}
 	}
 
+	/// Check if the predicted fee from the transaction origin can be withdrawn.
+	///
+	/// Note: The `fee` already includes the `tip`.
+	fn can_withdraw_fee(
+		who: &T::AccountId,
+		_call: &T::RuntimeCall,
+		_info: &DispatchInfoOf<T::RuntimeCall>,
+		fee: Self::Balance,
+		tip: Self::Balance,
+	) -> Result<(), TransactionValidityError> {
+		if fee.is_zero() {
+			return Ok(())
+		}
+
+		let withdraw_reason = if tip.is_zero() {
+			WithdrawReasons::TRANSACTION_PAYMENT
+		} else {
+			WithdrawReasons::TRANSACTION_PAYMENT | WithdrawReasons::TIP
+		};
+
+		let new_balance =
+			C::free_balance(who).checked_sub(&fee).ok_or(InvalidTransaction::Payment)?;
+		C::ensure_can_withdraw(who, fee, withdraw_reason, new_balance)
+			.map(|_| ())
+			.map_err(|_| InvalidTransaction::Payment.into())
+	}
+
 	/// Hand the fee and the tip over to the `[OnUnbalanced]` implementation.
 	/// Since the predicted fee might have been too high, parts of the fee may
 	/// be refunded.
@@ -153,4 +197,14 @@ where
 		}
 		Ok(())
 	}
+
+	#[cfg(feature = "runtime-benchmarks")]
+	fn endow_account(who: &T::AccountId, amount: Self::Balance) {
+		let _ = C::deposit_creating(who, amount);
+	}
+
+	#[cfg(feature = "runtime-benchmarks")]
+	fn minimum_balance() -> Self::Balance {
+		C::minimum_balance()
+	}
 }
diff --git a/substrate/frame/transaction-payment/src/tests.rs b/substrate/frame/transaction-payment/src/tests.rs
index d3a1721ccb9..7a49f8111e2 100644
--- a/substrate/frame/transaction-payment/src/tests.rs
+++ b/substrate/frame/transaction-payment/src/tests.rs
@@ -21,11 +21,14 @@ use crate as pallet_transaction_payment;
 use codec::Encode;
 
 use sp_runtime::{
-	testing::TestXt, traits::One, transaction_validity::InvalidTransaction, BuildStorage,
+	generic::UncheckedExtrinsic,
+	traits::{DispatchTransaction, One},
+	transaction_validity::InvalidTransaction,
+	BuildStorage,
 };
 
 use frame_support::{
-	assert_noop, assert_ok,
+	assert_ok,
 	dispatch::{DispatchClass, DispatchInfo, GetDispatchInfo, PostDispatchInfo},
 	traits::Currency,
 	weights::Weight,
@@ -128,44 +131,37 @@ fn default_post_info() -> PostDispatchInfo {
 	PostDispatchInfo { actual_weight: None, pays_fee: Default::default() }
 }
 
+type Ext = ChargeTransactionPayment<Runtime>;
+
 #[test]
-fn signed_extension_transaction_payment_work() {
+fn transaction_extension_transaction_payment_work() {
 	ExtBuilder::default()
 		.balance_factor(10)
 		.base_weight(Weight::from_parts(5, 0))
 		.build()
 		.execute_with(|| {
-			let len = 10;
-			let pre = ChargeTransactionPayment::<Runtime>::from(0)
-				.pre_dispatch(&1, CALL, &info_from_weight(Weight::from_parts(5, 0)), len)
+			let info = info_from_weight(Weight::from_parts(5, 0));
+			Ext::from(0)
+				.test_run(Some(1).into(), CALL, &info, 10, |_| {
+					assert_eq!(Balances::free_balance(1), 100 - 5 - 5 - 10);
+					Ok(default_post_info())
+				})
+				.unwrap()
 				.unwrap();
 			assert_eq!(Balances::free_balance(1), 100 - 5 - 5 - 10);
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info_from_weight(Weight::from_parts(5, 0)),
-				&default_post_info(),
-				len,
-				&Ok(())
-			));
-			assert_eq!(Balances::free_balance(1), 100 - 5 - 5 - 10);
 			assert_eq!(FeeUnbalancedAmount::get(), 5 + 5 + 10);
 			assert_eq!(TipUnbalancedAmount::get(), 0);
 
 			FeeUnbalancedAmount::mutate(|a| *a = 0);
 
-			let pre = ChargeTransactionPayment::<Runtime>::from(5 /* tipped */)
-				.pre_dispatch(&2, CALL, &info_from_weight(Weight::from_parts(100, 0)), len)
+			let info = info_from_weight(Weight::from_parts(100, 0));
+			Ext::from(5 /* tipped */)
+				.test_run(Some(2).into(), CALL, &info, 10, |_| {
+					assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
+					Ok(post_info_from_weight(Weight::from_parts(50, 0)))
+				})
+				.unwrap()
 				.unwrap();
-			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info_from_weight(Weight::from_parts(100, 0)),
-				&post_info_from_weight(Weight::from_parts(50, 0)),
-				len,
-				&Ok(())
-			));
 			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 50 - 5);
 			assert_eq!(FeeUnbalancedAmount::get(), 5 + 10 + 50);
 			assert_eq!(TipUnbalancedAmount::get(), 5);
@@ -173,43 +169,37 @@ fn signed_extension_transaction_payment_work() {
 }
 
 #[test]
-fn signed_extension_transaction_payment_multiplied_refund_works() {
+fn transaction_extension_transaction_payment_multiplied_refund_works() {
 	ExtBuilder::default()
 		.balance_factor(10)
 		.base_weight(Weight::from_parts(5, 0))
 		.build()
 		.execute_with(|| {
-			let len = 10;
 			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
 
-			let pre = ChargeTransactionPayment::<Runtime>::from(5 /* tipped */)
-				.pre_dispatch(&2, CALL, &info_from_weight(Weight::from_parts(100, 0)), len)
+			let len = 10;
+			let origin = Some(2).into();
+			let info = info_from_weight(Weight::from_parts(100, 0));
+			Ext::from(5 /* tipped */)
+				.test_run(origin, CALL, &info, len, |_| {
+					// 5 base fee, 10 byte fee, 3/2 * 100 weight fee, 5 tip
+					assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 150 - 5);
+					Ok(post_info_from_weight(Weight::from_parts(50, 0)))
+				})
+				.unwrap()
 				.unwrap();
-			// 5 base fee, 10 byte fee, 3/2 * 100 weight fee, 5 tip
-			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 150 - 5);
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info_from_weight(Weight::from_parts(100, 0)),
-				&post_info_from_weight(Weight::from_parts(50, 0)),
-				len,
-				&Ok(())
-			));
+
 			// 75 (3/2 of the returned 50 units of weight) is refunded
 			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 75 - 5);
 		});
 }
 
 #[test]
-fn signed_extension_transaction_payment_is_bounded() {
+fn transaction_extension_transaction_payment_is_bounded() {
 	ExtBuilder::default().balance_factor(1000).byte_fee(0).build().execute_with(|| {
 		// maximum weight possible
-		assert_ok!(ChargeTransactionPayment::<Runtime>::from(0).pre_dispatch(
-			&1,
-			CALL,
-			&info_from_weight(Weight::MAX),
-			10
-		));
+		let info = info_from_weight(Weight::MAX);
+		assert_ok!(Ext::from(0).validate_and_prepare(Some(1).into(), CALL, &info, 10));
 		// fee will be proportional to what is the actual maximum weight in the runtime.
 		assert_eq!(
 			Balances::free_balance(&1),
@@ -220,7 +210,7 @@ fn signed_extension_transaction_payment_is_bounded() {
 }
 
 #[test]
-fn signed_extension_allows_free_transactions() {
+fn transaction_extension_allows_free_transactions() {
 	ExtBuilder::default()
 		.base_weight(Weight::from_parts(100, 0))
 		.balance_factor(0)
@@ -232,38 +222,28 @@ fn signed_extension_allows_free_transactions() {
 			let len = 100;
 
 			// This is a completely free (and thus wholly insecure/DoS-ridden) transaction.
-			let operational_transaction = DispatchInfo {
+			let op_tx = DispatchInfo {
 				weight: Weight::from_parts(0, 0),
 				class: DispatchClass::Operational,
 				pays_fee: Pays::No,
 			};
-			assert_ok!(ChargeTransactionPayment::<Runtime>::from(0).validate(
-				&1,
-				CALL,
-				&operational_transaction,
-				len
-			));
+			assert_ok!(Ext::from(0).validate_only(Some(1).into(), CALL, &op_tx, len));
 
 			// like a InsecureFreeNormal
-			let free_transaction = DispatchInfo {
+			let free_tx = DispatchInfo {
 				weight: Weight::from_parts(0, 0),
 				class: DispatchClass::Normal,
 				pays_fee: Pays::Yes,
 			};
-			assert_noop!(
-				ChargeTransactionPayment::<Runtime>::from(0).validate(
-					&1,
-					CALL,
-					&free_transaction,
-					len
-				),
+			assert_eq!(
+				Ext::from(0).validate_only(Some(1).into(), CALL, &free_tx, len).unwrap_err(),
 				TransactionValidityError::Invalid(InvalidTransaction::Payment),
 			);
 		});
 }
 
 #[test]
-fn signed_ext_length_fee_is_also_updated_per_congestion() {
+fn transaction_ext_length_fee_is_also_updated_per_congestion() {
 	ExtBuilder::default()
 		.base_weight(Weight::from_parts(5, 0))
 		.balance_factor(10)
@@ -272,16 +252,15 @@ fn signed_ext_length_fee_is_also_updated_per_congestion() {
 			// all fees should be x1.5
 			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
 			let len = 10;
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::from(10) // tipped
-				.pre_dispatch(&1, CALL, &info_from_weight(Weight::from_parts(3, 0)), len));
+			let info = &info_from_weight(Weight::from_parts(3, 0));
+			assert_ok!(Ext::from(10).validate_and_prepare(Some(1).into(), CALL, info, len));
 			assert_eq!(
 				Balances::free_balance(1),
 				100 // original
-            - 10 // tip
-            - 5 // base
-            - 10 // len
-            - (3 * 3 / 2) // adjusted weight
+			- 10 // tip
+			- 5 // base
+			- 10 // len
+			- (3 * 3 / 2) // adjusted weight
 			);
 		})
 }
@@ -291,62 +270,62 @@ fn query_info_and_fee_details_works() {
 	let call = RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest: 2, value: 69 });
 	let origin = 111111;
 	let extra = ();
-	let xt = TestXt::new(call.clone(), Some((origin, extra)));
+	let xt = UncheckedExtrinsic::new_signed(call.clone(), origin, (), extra);
 	let info = xt.get_dispatch_info();
 	let ext = xt.encode();
 	let len = ext.len() as u32;
 
-	let unsigned_xt = TestXt::<_, ()>::new(call, None);
+	let unsigned_xt = UncheckedExtrinsic::<u64, _, (), ()>::new_bare(call);
 	let unsigned_xt_info = unsigned_xt.get_dispatch_info();
 
 	ExtBuilder::default()
-        .base_weight(Weight::from_parts(5, 0))
-        .weight_fee(2)
-        .build()
-        .execute_with(|| {
-            // all fees should be x1.5
-            <NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
-
-            assert_eq!(
-                TransactionPayment::query_info(xt.clone(), len),
-                RuntimeDispatchInfo {
-                    weight: info.weight,
-                    class: info.class,
-                    partial_fee: 5 * 2 /* base * weight_fee */
-                    + len as u64  /* len * 1 */
-                    + info.weight.min(BlockWeights::get().max_block).ref_time() as u64 * 2 * 3 / 2 /* weight */
-                },
-            );
-
-            assert_eq!(
-                TransactionPayment::query_info(unsigned_xt.clone(), len),
-                RuntimeDispatchInfo {
-                    weight: unsigned_xt_info.weight,
-                    class: unsigned_xt_info.class,
-                    partial_fee: 0,
-                },
-            );
-
-            assert_eq!(
-                TransactionPayment::query_fee_details(xt, len),
-                FeeDetails {
-                    inclusion_fee: Some(InclusionFee {
-                        base_fee: 5 * 2,
-                        len_fee: len as u64,
-                        adjusted_weight_fee: info
-                            .weight
-                            .min(BlockWeights::get().max_block)
-                            .ref_time() as u64 * 2 * 3 / 2
-                    }),
-                    tip: 0,
-                },
-            );
-
-            assert_eq!(
-                TransactionPayment::query_fee_details(unsigned_xt, len),
-                FeeDetails { inclusion_fee: None, tip: 0 },
-            );
-        });
+		.base_weight(Weight::from_parts(5, 0))
+		.weight_fee(2)
+		.build()
+		.execute_with(|| {
+			// all fees should be x1.5
+			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
+
+			assert_eq!(
+				TransactionPayment::query_info(xt.clone(), len),
+				RuntimeDispatchInfo {
+					weight: info.weight,
+					class: info.class,
+					partial_fee: 5 * 2 /* base * weight_fee */
+					+ len as u64  /* len * 1 */
+					+ info.weight.min(BlockWeights::get().max_block).ref_time() as u64 * 2 * 3 / 2 /* weight */
+				},
+			);
+
+			assert_eq!(
+				TransactionPayment::query_info(unsigned_xt.clone(), len),
+				RuntimeDispatchInfo {
+					weight: unsigned_xt_info.weight,
+					class: unsigned_xt_info.class,
+					partial_fee: 0,
+				},
+			);
+
+			assert_eq!(
+				TransactionPayment::query_fee_details(xt, len),
+				FeeDetails {
+					inclusion_fee: Some(InclusionFee {
+						base_fee: 5 * 2,
+						len_fee: len as u64,
+						adjusted_weight_fee: info
+							.weight
+							.min(BlockWeights::get().max_block)
+							.ref_time() as u64 * 2 * 3 / 2
+					}),
+					tip: 0,
+				},
+			);
+
+			assert_eq!(
+				TransactionPayment::query_fee_details(unsigned_xt, len),
+				FeeDetails { inclusion_fee: None, tip: 0 },
+			);
+		});
 }
 
 #[test]
@@ -357,39 +336,39 @@ fn query_call_info_and_fee_details_works() {
 	let len = encoded_call.len() as u32;
 
 	ExtBuilder::default()
-        .base_weight(Weight::from_parts(5, 0))
-        .weight_fee(2)
-        .build()
-        .execute_with(|| {
-            // all fees should be x1.5
-            <NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
-
-            assert_eq!(
-                TransactionPayment::query_call_info(call.clone(), len),
-                RuntimeDispatchInfo {
-                    weight: info.weight,
-                    class: info.class,
-                    partial_fee: 5 * 2 /* base * weight_fee */
-                    + len as u64  /* len * 1 */
-                    + info.weight.min(BlockWeights::get().max_block).ref_time() as u64 * 2 * 3 / 2 /* weight */
-                },
-            );
-
-            assert_eq!(
-                TransactionPayment::query_call_fee_details(call, len),
-                FeeDetails {
-                    inclusion_fee: Some(InclusionFee {
-                        base_fee: 5 * 2,     /* base * weight_fee */
-                        len_fee: len as u64, /* len * 1 */
-                        adjusted_weight_fee: info
-                            .weight
-                            .min(BlockWeights::get().max_block)
-                            .ref_time() as u64 * 2 * 3 / 2  /* weight * weight_fee * multipler */
-                    }),
-                    tip: 0,
-                },
-            );
-        });
+		.base_weight(Weight::from_parts(5, 0))
+		.weight_fee(2)
+		.build()
+		.execute_with(|| {
+			// all fees should be x1.5
+			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(3, 2));
+
+			assert_eq!(
+				TransactionPayment::query_call_info(call.clone(), len),
+				RuntimeDispatchInfo {
+					weight: info.weight,
+					class: info.class,
+					partial_fee: 5 * 2 /* base * weight_fee */
+					+ len as u64  /* len * 1 */
+					+ info.weight.min(BlockWeights::get().max_block).ref_time() as u64 * 2 * 3 / 2 /* weight */
+				},
+			);
+
+			assert_eq!(
+				TransactionPayment::query_call_fee_details(call, len),
+				FeeDetails {
+					inclusion_fee: Some(InclusionFee {
+						base_fee: 5 * 2,     /* base * weight_fee */
+						len_fee: len as u64, /* len * 1 */
+						adjusted_weight_fee: info
+							.weight
+							.min(BlockWeights::get().max_block)
+							.ref_time() as u64 * 2 * 3 / 2  /* weight * weight_fee * multipler */
+					}),
+					tip: 0,
+				},
+			);
+		});
 }
 
 #[test]
@@ -526,27 +505,23 @@ fn refund_does_not_recreate_account() {
 		.execute_with(|| {
 			// So events are emitted
 			System::set_block_number(10);
-			let len = 10;
-			let pre = ChargeTransactionPayment::<Runtime>::from(5 /* tipped */)
-				.pre_dispatch(&2, CALL, &info_from_weight(Weight::from_parts(100, 0)), len)
+			let info = info_from_weight(Weight::from_parts(100, 0));
+			Ext::from(5 /* tipped */)
+				.test_run(Some(2).into(), CALL, &info, 10, |origin| {
+					assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
+
+					// kill the account between pre and post dispatch
+					assert_ok!(Balances::transfer_allow_death(
+						origin,
+						3,
+						Balances::free_balance(2)
+					));
+					assert_eq!(Balances::free_balance(2), 0);
+
+					Ok(post_info_from_weight(Weight::from_parts(50, 0)))
+				})
+				.unwrap()
 				.unwrap();
-			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
-
-			// kill the account between pre and post dispatch
-			assert_ok!(Balances::transfer_allow_death(
-				Some(2).into(),
-				3,
-				Balances::free_balance(2)
-			));
-			assert_eq!(Balances::free_balance(2), 0);
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info_from_weight(Weight::from_parts(100, 0)),
-				&post_info_from_weight(Weight::from_parts(50, 0)),
-				len,
-				&Ok(())
-			));
 			assert_eq!(Balances::free_balance(2), 0);
 			// Transfer Event
 			System::assert_has_event(RuntimeEvent::Balances(pallet_balances::Event::Transfer {
@@ -568,20 +543,15 @@ fn actual_weight_higher_than_max_refunds_nothing() {
 		.base_weight(Weight::from_parts(5, 0))
 		.build()
 		.execute_with(|| {
-			let len = 10;
-			let pre = ChargeTransactionPayment::<Runtime>::from(5 /* tipped */)
-				.pre_dispatch(&2, CALL, &info_from_weight(Weight::from_parts(100, 0)), len)
+			let info = info_from_weight(Weight::from_parts(100, 0));
+			Ext::from(5 /* tipped */)
+				.test_run(Some(2).into(), CALL, &info, 10, |_| {
+					assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
+					Ok(post_info_from_weight(Weight::from_parts(101, 0)))
+				})
+				.unwrap()
 				.unwrap();
 			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
-
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info_from_weight(Weight::from_parts(100, 0)),
-				&post_info_from_weight(Weight::from_parts(101, 0)),
-				len,
-				&Ok(())
-			));
-			assert_eq!(Balances::free_balance(2), 200 - 5 - 10 - 100 - 5);
 		});
 }
 
@@ -594,25 +564,20 @@ fn zero_transfer_on_free_transaction() {
 		.execute_with(|| {
 			// So events are emitted
 			System::set_block_number(10);
-			let len = 10;
-			let dispatch_info = DispatchInfo {
+			let info = DispatchInfo {
 				weight: Weight::from_parts(100, 0),
 				pays_fee: Pays::No,
 				class: DispatchClass::Normal,
 			};
 			let user = 69;
-			let pre = ChargeTransactionPayment::<Runtime>::from(0)
-				.pre_dispatch(&user, CALL, &dispatch_info, len)
+			Ext::from(0)
+				.test_run(Some(user).into(), CALL, &info, 10, |_| {
+					assert_eq!(Balances::total_balance(&user), 0);
+					Ok(default_post_info())
+				})
+				.unwrap()
 				.unwrap();
 			assert_eq!(Balances::total_balance(&user), 0);
-			assert_ok!(ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&dispatch_info,
-				&default_post_info(),
-				len,
-				&Ok(())
-			));
-			assert_eq!(Balances::total_balance(&user), 0);
 			// TransactionFeePaid Event
 			System::assert_has_event(RuntimeEvent::TransactionPayment(
 				pallet_transaction_payment::Event::TransactionFeePaid {
@@ -639,19 +604,11 @@ fn refund_consistent_with_actual_weight() {
 
 			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(5, 4));
 
-			let pre = ChargeTransactionPayment::<Runtime>::from(tip)
-				.pre_dispatch(&2, CALL, &info, len)
+			Ext::from(tip)
+				.test_run(Some(2).into(), CALL, &info, len, |_| Ok(post_info))
+				.unwrap()
 				.unwrap();
 
-			ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				len,
-				&Ok(()),
-			)
-			.unwrap();
-
 			let refund_based_fee = prev_balance - Balances::free_balance(2);
 			let actual_fee =
 				Pallet::<Runtime>::compute_actual_fee(len as u32, &info, &post_info, tip);
@@ -673,18 +630,13 @@ fn should_alter_operational_priority() {
 			class: DispatchClass::Normal,
 			pays_fee: Pays::Yes,
 		};
-		let priority = ChargeTransactionPayment::<Runtime>(tip)
-			.validate(&2, CALL, &normal, len)
-			.unwrap()
-			.priority;
 
+		let ext = Ext::from(tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &normal, len).unwrap().0.priority;
 		assert_eq!(priority, 60);
 
-		let priority = ChargeTransactionPayment::<Runtime>(2 * tip)
-			.validate(&2, CALL, &normal, len)
-			.unwrap()
-			.priority;
-
+		let ext = Ext::from(2 * tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &normal, len).unwrap().0.priority;
 		assert_eq!(priority, 110);
 	});
 
@@ -694,16 +646,13 @@ fn should_alter_operational_priority() {
 			class: DispatchClass::Operational,
 			pays_fee: Pays::Yes,
 		};
-		let priority = ChargeTransactionPayment::<Runtime>(tip)
-			.validate(&2, CALL, &op, len)
-			.unwrap()
-			.priority;
+
+		let ext = Ext::from(tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &op, len).unwrap().0.priority;
 		assert_eq!(priority, 5810);
 
-		let priority = ChargeTransactionPayment::<Runtime>(2 * tip)
-			.validate(&2, CALL, &op, len)
-			.unwrap()
-			.priority;
+		let ext = Ext::from(2 * tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &op, len).unwrap().0.priority;
 		assert_eq!(priority, 6110);
 	});
 }
@@ -719,11 +668,8 @@ fn no_tip_has_some_priority() {
 			class: DispatchClass::Normal,
 			pays_fee: Pays::Yes,
 		};
-		let priority = ChargeTransactionPayment::<Runtime>(tip)
-			.validate(&2, CALL, &normal, len)
-			.unwrap()
-			.priority;
-
+		let ext = Ext::from(tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &normal, len).unwrap().0.priority;
 		assert_eq!(priority, 10);
 	});
 
@@ -733,10 +679,8 @@ fn no_tip_has_some_priority() {
 			class: DispatchClass::Operational,
 			pays_fee: Pays::Yes,
 		};
-		let priority = ChargeTransactionPayment::<Runtime>(tip)
-			.validate(&2, CALL, &op, len)
-			.unwrap()
-			.priority;
+		let ext = Ext::from(tip);
+		let priority = ext.validate_only(Some(2).into(), CALL, &op, len).unwrap().0.priority;
 		assert_eq!(priority, 5510);
 	});
 }
@@ -744,8 +688,8 @@ fn no_tip_has_some_priority() {
 #[test]
 fn higher_tip_have_higher_priority() {
 	let get_priorities = |tip: u64| {
-		let mut priority1 = 0;
-		let mut priority2 = 0;
+		let mut pri1 = 0;
+		let mut pri2 = 0;
 		let len = 10;
 		ExtBuilder::default().balance_factor(100).build().execute_with(|| {
 			let normal = DispatchInfo {
@@ -753,10 +697,8 @@ fn higher_tip_have_higher_priority() {
 				class: DispatchClass::Normal,
 				pays_fee: Pays::Yes,
 			};
-			priority1 = ChargeTransactionPayment::<Runtime>(tip)
-				.validate(&2, CALL, &normal, len)
-				.unwrap()
-				.priority;
+			let ext = Ext::from(tip);
+			pri1 = ext.validate_only(Some(2).into(), CALL, &normal, len).unwrap().0.priority;
 		});
 
 		ExtBuilder::default().balance_factor(100).build().execute_with(|| {
@@ -765,13 +707,11 @@ fn higher_tip_have_higher_priority() {
 				class: DispatchClass::Operational,
 				pays_fee: Pays::Yes,
 			};
-			priority2 = ChargeTransactionPayment::<Runtime>(tip)
-				.validate(&2, CALL, &op, len)
-				.unwrap()
-				.priority;
+			let ext = Ext::from(tip);
+			pri2 = ext.validate_only(Some(2).into(), CALL, &op, len).unwrap().0.priority;
 		});
 
-		(priority1, priority2)
+		(pri1, pri2)
 	};
 
 	let mut prev_priorities = get_priorities(0);
@@ -799,19 +739,11 @@ fn post_info_can_change_pays_fee() {
 
 			<NextFeeMultiplier<Runtime>>::put(Multiplier::saturating_from_rational(5, 4));
 
-			let pre = ChargeTransactionPayment::<Runtime>::from(tip)
-				.pre_dispatch(&2, CALL, &info, len)
+			let post_info = ChargeTransactionPayment::<Runtime>::from(tip)
+				.test_run(Some(2).into(), CALL, &info, len, |_| Ok(post_info))
+				.unwrap()
 				.unwrap();
 
-			ChargeTransactionPayment::<Runtime>::post_dispatch(
-				Some(pre),
-				&info,
-				&post_info,
-				len,
-				&Ok(()),
-			)
-			.unwrap();
-
 			let refund_based_fee = prev_balance - Balances::free_balance(2);
 			let actual_fee =
 				Pallet::<Runtime>::compute_actual_fee(len as u32, &info, &post_info, tip);
diff --git a/substrate/frame/transaction-payment/src/types.rs b/substrate/frame/transaction-payment/src/types.rs
index 25cecc58a63..bfb3012fef0 100644
--- a/substrate/frame/transaction-payment/src/types.rs
+++ b/substrate/frame/transaction-payment/src/types.rs
@@ -112,7 +112,7 @@ pub struct RuntimeDispatchInfo<Balance, Weight = frame_support::weights::Weight>
 	/// The inclusion fee of this dispatch.
 	///
 	/// This does not include a tip or anything else that
-	/// depends on the signature (i.e. depends on a `SignedExtension`).
+	/// depends on the signature (i.e. depends on a `TransactionExtension`).
 	#[cfg_attr(feature = "std", serde(with = "serde_balance"))]
 	pub partial_fee: Balance,
 }
diff --git a/substrate/frame/transaction-payment/src/weights.rs b/substrate/frame/transaction-payment/src/weights.rs
new file mode 100644
index 00000000000..bcffb2eb331
--- /dev/null
+++ b/substrate/frame/transaction-payment/src/weights.rs
@@ -0,0 +1,92 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_transaction_payment`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
+
+// Executed Command:
+// ./target/production/substrate-node
+// benchmark
+// pallet
+// --chain=dev
+// --steps=50
+// --repeat=20
+// --pallet=pallet_transaction_payment
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./substrate/frame/transaction-payment/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
+use core::marker::PhantomData;
+
+/// Weight functions needed for `pallet_transaction_payment`.
+pub trait WeightInfo {
+	fn charge_transaction_payment() -> Weight;
+}
+
+/// Weights for `pallet_transaction_payment` using the Substrate node and recommended hardware.
+pub struct SubstrateWeight<T>(PhantomData<T>);
+impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 40_506_000 picoseconds.
+		Weight::from_parts(41_647_000, 1733)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+	}
+}
+
+// For backwards compatibility and tests.
+impl WeightInfo for () {
+	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
+	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Authorship::Author` (r:1 w:0)
+	/// Proof: `Authorship::Author` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `System::Digest` (r:1 w:0)
+	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
+	fn charge_transaction_payment() -> Weight {
+		// Proof Size summary in bytes:
+		//  Measured:  `248`
+		//  Estimated: `1733`
+		// Minimum execution time: 40_506_000 picoseconds.
+		Weight::from_parts(41_647_000, 1733)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+	}
+}
diff --git a/substrate/frame/transaction-storage/src/weights.rs b/substrate/frame/transaction-storage/src/weights.rs
index 519317177c4..bfbed62c5a3 100644
--- a/substrate/frame/transaction-storage/src/weights.rs
+++ b/substrate/frame/transaction-storage/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_transaction_storage
+//! Autogenerated weights for `pallet_transaction_storage`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/transaction-storage/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/transaction-storage/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,125 +49,133 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_transaction_storage.
+/// Weight functions needed for `pallet_transaction_storage`.
 pub trait WeightInfo {
 	fn store(l: u32, ) -> Weight;
 	fn renew() -> Weight;
 	fn check_proof_max() -> Weight;
 }
 
-/// Weights for pallet_transaction_storage using the Substrate node and recommended hardware.
+/// Weights for `pallet_transaction_storage` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: TransactionStorage ByteFee (r:1 w:0)
-	/// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage EntryFee (r:1 w:0)
-	/// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage BlockTransactions (r:1 w:1)
-	/// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::ByteFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::EntryFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1)
+	/// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[1, 8388608]`.
 	fn store(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `176`
+		//  Measured:  `242`
 		//  Estimated: `38351`
-		// Minimum execution time: 34_844_000 picoseconds.
-		Weight::from_parts(35_489_000, 38351)
+		// Minimum execution time: 57_912_000 picoseconds.
+		Weight::from_parts(58_642_000, 38351)
 			// Standard Error: 11
-			.saturating_add(Weight::from_parts(6_912, 0).saturating_mul(l.into()))
-			.saturating_add(T::DbWeight::get().reads(3_u64))
-			.saturating_add(T::DbWeight::get().writes(1_u64))
+			.saturating_add(Weight::from_parts(6_778, 0).saturating_mul(l.into()))
+			.saturating_add(T::DbWeight::get().reads(4_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: TransactionStorage Transactions (r:1 w:0)
-	/// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage ByteFee (r:1 w:0)
-	/// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage EntryFee (r:1 w:0)
-	/// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage BlockTransactions (r:1 w:1)
-	/// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::Transactions` (r:1 w:0)
+	/// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::ByteFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::EntryFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1)
+	/// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`)
 	fn renew() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `326`
+		//  Measured:  `430`
 		//  Estimated: `40351`
-		// Minimum execution time: 48_244_000 picoseconds.
-		Weight::from_parts(50_939_000, 40351)
-			.saturating_add(T::DbWeight::get().reads(4_u64))
-			.saturating_add(T::DbWeight::get().writes(1_u64))
+		// Minimum execution time: 72_571_000 picoseconds.
+		Weight::from_parts(74_832_000, 40351)
+			.saturating_add(T::DbWeight::get().reads(5_u64))
+			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: TransactionStorage ProofChecked (r:1 w:1)
-	/// Proof: TransactionStorage ProofChecked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage StoragePeriod (r:1 w:0)
-	/// Proof: TransactionStorage StoragePeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage ChunkCount (r:1 w:0)
-	/// Proof: TransactionStorage ChunkCount (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen)
-	/// Storage: System ParentHash (r:1 w:0)
-	/// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage Transactions (r:1 w:0)
-	/// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::ProofChecked` (r:1 w:1)
+	/// Proof: `TransactionStorage::ProofChecked` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::StoragePeriod` (r:1 w:0)
+	/// Proof: `TransactionStorage::StoragePeriod` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::ChunkCount` (r:1 w:0)
+	/// Proof: `TransactionStorage::ChunkCount` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::Transactions` (r:1 w:0)
+	/// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`)
 	fn check_proof_max() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `37145`
+		//  Measured:  `37211`
 		//  Estimated: `40351`
-		// Minimum execution time: 80_913_000 picoseconds.
-		Weight::from_parts(84_812_000, 40351)
+		// Minimum execution time: 65_985_000 picoseconds.
+		Weight::from_parts(72_960_000, 40351)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: TransactionStorage ByteFee (r:1 w:0)
-	/// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage EntryFee (r:1 w:0)
-	/// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage BlockTransactions (r:1 w:1)
-	/// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::ByteFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::EntryFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1)
+	/// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`)
 	/// The range of component `l` is `[1, 8388608]`.
 	fn store(l: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `176`
+		//  Measured:  `242`
 		//  Estimated: `38351`
-		// Minimum execution time: 34_844_000 picoseconds.
-		Weight::from_parts(35_489_000, 38351)
+		// Minimum execution time: 57_912_000 picoseconds.
+		Weight::from_parts(58_642_000, 38351)
 			// Standard Error: 11
-			.saturating_add(Weight::from_parts(6_912, 0).saturating_mul(l.into()))
-			.saturating_add(RocksDbWeight::get().reads(3_u64))
-			.saturating_add(RocksDbWeight::get().writes(1_u64))
+			.saturating_add(Weight::from_parts(6_778, 0).saturating_mul(l.into()))
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: TransactionStorage Transactions (r:1 w:0)
-	/// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage ByteFee (r:1 w:0)
-	/// Proof: TransactionStorage ByteFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage EntryFee (r:1 w:0)
-	/// Proof: TransactionStorage EntryFee (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage BlockTransactions (r:1 w:1)
-	/// Proof: TransactionStorage BlockTransactions (max_values: Some(1), max_size: Some(36866), added: 37361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::Transactions` (r:1 w:0)
+	/// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::ByteFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::ByteFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::EntryFee` (r:1 w:0)
+	/// Proof: `TransactionStorage::EntryFee` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Balances::Holds` (r:1 w:1)
+	/// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::BlockTransactions` (r:1 w:1)
+	/// Proof: `TransactionStorage::BlockTransactions` (`max_values`: Some(1), `max_size`: Some(36866), added: 37361, mode: `MaxEncodedLen`)
 	fn renew() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `326`
+		//  Measured:  `430`
 		//  Estimated: `40351`
-		// Minimum execution time: 48_244_000 picoseconds.
-		Weight::from_parts(50_939_000, 40351)
-			.saturating_add(RocksDbWeight::get().reads(4_u64))
-			.saturating_add(RocksDbWeight::get().writes(1_u64))
+		// Minimum execution time: 72_571_000 picoseconds.
+		Weight::from_parts(74_832_000, 40351)
+			.saturating_add(RocksDbWeight::get().reads(5_u64))
+			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: TransactionStorage ProofChecked (r:1 w:1)
-	/// Proof: TransactionStorage ProofChecked (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage StoragePeriod (r:1 w:0)
-	/// Proof: TransactionStorage StoragePeriod (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage ChunkCount (r:1 w:0)
-	/// Proof: TransactionStorage ChunkCount (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen)
-	/// Storage: System ParentHash (r:1 w:0)
-	/// Proof: System ParentHash (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen)
-	/// Storage: TransactionStorage Transactions (r:1 w:0)
-	/// Proof: TransactionStorage Transactions (max_values: None, max_size: Some(36886), added: 39361, mode: MaxEncodedLen)
+	/// Storage: `TransactionStorage::ProofChecked` (r:1 w:1)
+	/// Proof: `TransactionStorage::ProofChecked` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::StoragePeriod` (r:1 w:0)
+	/// Proof: `TransactionStorage::StoragePeriod` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::ChunkCount` (r:1 w:0)
+	/// Proof: `TransactionStorage::ChunkCount` (`max_values`: None, `max_size`: Some(24), added: 2499, mode: `MaxEncodedLen`)
+	/// Storage: `System::ParentHash` (r:1 w:0)
+	/// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
+	/// Storage: `TransactionStorage::Transactions` (r:1 w:0)
+	/// Proof: `TransactionStorage::Transactions` (`max_values`: None, `max_size`: Some(36886), added: 39361, mode: `MaxEncodedLen`)
 	fn check_proof_max() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `37145`
+		//  Measured:  `37211`
 		//  Estimated: `40351`
-		// Minimum execution time: 80_913_000 picoseconds.
-		Weight::from_parts(84_812_000, 40351)
+		// Minimum execution time: 65_985_000 picoseconds.
+		Weight::from_parts(72_960_000, 40351)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/treasury/src/weights.rs b/substrate/frame/treasury/src/weights.rs
index 030e18980eb..8ef4f89fd65 100644
--- a/substrate/frame/treasury/src/weights.rs
+++ b/substrate/frame/treasury/src/weights.rs
@@ -15,27 +15,31 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_treasury
+//! Autogenerated weights for `pallet_treasury`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-07, STEPS: `20`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `cob`, CPU: `<UNKNOWN>`
-//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/debug/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
-// --steps=20
-// --repeat=2
-// --pallet=pallet-treasury
+// --steps=50
+// --repeat=20
+// --pallet=pallet_treasury
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/treasury/src/._weights.rs
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/treasury/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -45,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_treasury.
+/// Weight functions needed for `pallet_treasury`.
 pub trait WeightInfo {
 	fn spend_local() -> Weight;
 	fn propose_spend() -> Weight;
@@ -59,304 +63,304 @@ pub trait WeightInfo {
 	fn void_spend() -> Weight;
 }
 
-/// Weights for pallet_treasury using the Substrate node and recommended hardware.
+/// Weights for `pallet_treasury` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn spend_local() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `1887`
-		// Minimum execution time: 179_000_000 picoseconds.
-		Weight::from_parts(190_000_000, 1887)
+		// Minimum execution time: 11_686_000 picoseconds.
+		Weight::from_parts(12_138_000, 1887)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn propose_spend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `1489`
-		// Minimum execution time: 349_000_000 picoseconds.
-		Weight::from_parts(398_000_000, 1489)
+		// Minimum execution time: 23_773_000 picoseconds.
+		Weight::from_parts(24_801_000, 1489)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Proposals (r:1 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn reject_proposal() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `335`
 		//  Estimated: `3593`
-		// Minimum execution time: 367_000_000 picoseconds.
-		Weight::from_parts(388_000_000, 3593)
+		// Minimum execution time: 24_533_000 picoseconds.
+		Weight::from_parts(25_731_000, 3593)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Proposals (r:1 w:0)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:0)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn approve_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `483 + p * (9 ±0)`
+		//  Measured:  `504 + p * (8 ±0)`
 		//  Estimated: `3573`
-		// Minimum execution time: 111_000_000 picoseconds.
-		Weight::from_parts(108_813_243, 3573)
-			// Standard Error: 147_887
-			.saturating_add(Weight::from_parts(683_216, 0).saturating_mul(p.into()))
+		// Minimum execution time: 8_245_000 picoseconds.
+		Weight::from_parts(11_300_222, 3573)
+			// Standard Error: 1_080
+			.saturating_add(Weight::from_parts(71_375, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn remove_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161`
 		//  Estimated: `1887`
-		// Minimum execution time: 71_000_000 picoseconds.
-		Weight::from_parts(78_000_000, 1887)
+		// Minimum execution time: 6_231_000 picoseconds.
+		Weight::from_parts(6_517_000, 1887)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Deactivated (r:1 w:1)
-	/// Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:99 w:99)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:198 w:198)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Deactivated` (r:1 w:1)
+	/// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:99 w:99)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:198 w:198)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn on_initialize_proposals(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `427 + p * (251 ±0)`
+		//  Measured:  `451 + p * (251 ±0)`
 		//  Estimated: `1887 + p * (5206 ±0)`
-		// Minimum execution time: 614_000_000 picoseconds.
-		Weight::from_parts(498_501_558, 1887)
-			// Standard Error: 1_070_260
-			.saturating_add(Weight::from_parts(599_011_690, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_729_000 picoseconds.
+		Weight::from_parts(37_861_389, 1887)
+			// Standard Error: 18_741
+			.saturating_add(Weight::from_parts(31_377_118, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into()))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:0)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
-	/// Storage: Treasury SpendCount (r:1 w:1)
-	/// Proof: Treasury SpendCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Spends (r:0 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::SpendCount` (r:1 w:1)
+	/// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Spends` (r:0 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn spend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `140`
 		//  Estimated: `3501`
-		// Minimum execution time: 214_000_000 picoseconds.
-		Weight::from_parts(216_000_000, 3501)
+		// Minimum execution time: 13_700_000 picoseconds.
+		Weight::from_parts(14_519_000, 3501)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `705`
+		//  Measured:  `709`
 		//  Estimated: `6208`
-		// Minimum execution time: 760_000_000 picoseconds.
-		Weight::from_parts(822_000_000, 6208)
+		// Minimum execution time: 54_888_000 picoseconds.
+		Weight::from_parts(55_966_000, 6208)
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn check_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `194`
-		//  Estimated: `3534`
-		// Minimum execution time: 153_000_000 picoseconds.
-		Weight::from_parts(160_000_000, 3534)
+		//  Measured:  `198`
+		//  Estimated: `3538`
+		// Minimum execution time: 11_802_000 picoseconds.
+		Weight::from_parts(12_421_000, 3538)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn void_spend() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `194`
-		//  Estimated: `3534`
-		// Minimum execution time: 147_000_000 picoseconds.
-		Weight::from_parts(181_000_000, 3534)
+		//  Measured:  `198`
+		//  Estimated: `3538`
+		// Minimum execution time: 10_571_000 picoseconds.
+		Weight::from_parts(11_052_000, 3538)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn spend_local() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `76`
 		//  Estimated: `1887`
-		// Minimum execution time: 179_000_000 picoseconds.
-		Weight::from_parts(190_000_000, 1887)
+		// Minimum execution time: 11_686_000 picoseconds.
+		Weight::from_parts(12_138_000, 1887)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
-	/// Storage: Treasury ProposalCount (r:1 w:1)
-	/// Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:0 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
+	/// Storage: `Treasury::ProposalCount` (r:1 w:1)
+	/// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:0 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
 	fn propose_spend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `1489`
-		// Minimum execution time: 349_000_000 picoseconds.
-		Weight::from_parts(398_000_000, 1489)
+		// Minimum execution time: 23_773_000 picoseconds.
+		Weight::from_parts(24_801_000, 1489)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Proposals (r:1 w:1)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:1)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn reject_proposal() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `335`
 		//  Estimated: `3593`
-		// Minimum execution time: 367_000_000 picoseconds.
-		Weight::from_parts(388_000_000, 3593)
+		// Minimum execution time: 24_533_000 picoseconds.
+		Weight::from_parts(25_731_000, 3593)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Proposals (r:1 w:0)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Proposals` (r:1 w:0)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn approve_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `483 + p * (9 ±0)`
+		//  Measured:  `504 + p * (8 ±0)`
 		//  Estimated: `3573`
-		// Minimum execution time: 111_000_000 picoseconds.
-		Weight::from_parts(108_813_243, 3573)
-			// Standard Error: 147_887
-			.saturating_add(Weight::from_parts(683_216, 0).saturating_mul(p.into()))
+		// Minimum execution time: 8_245_000 picoseconds.
+		Weight::from_parts(11_300_222, 3573)
+			// Standard Error: 1_080
+			.saturating_add(Weight::from_parts(71_375, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	fn remove_approval() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `161`
 		//  Estimated: `1887`
-		// Minimum execution time: 71_000_000 picoseconds.
-		Weight::from_parts(78_000_000, 1887)
+		// Minimum execution time: 6_231_000 picoseconds.
+		Weight::from_parts(6_517_000, 1887)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Deactivated (r:1 w:1)
-	/// Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen)
-	/// Storage: Treasury Approvals (r:1 w:1)
-	/// Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
-	/// Storage: Treasury Proposals (r:99 w:99)
-	/// Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen)
-	/// Storage: System Account (r:198 w:198)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
-	/// Storage: Bounties BountyApprovals (r:1 w:1)
-	/// Proof: Bounties BountyApprovals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Deactivated` (r:1 w:1)
+	/// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Approvals` (r:1 w:1)
+	/// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Proposals` (r:99 w:99)
+	/// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:198 w:198)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
+	/// Storage: `Bounties::BountyApprovals` (r:1 w:1)
+	/// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`)
 	/// The range of component `p` is `[0, 99]`.
 	fn on_initialize_proposals(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `427 + p * (251 ±0)`
+		//  Measured:  `451 + p * (251 ±0)`
 		//  Estimated: `1887 + p * (5206 ±0)`
-		// Minimum execution time: 614_000_000 picoseconds.
-		Weight::from_parts(498_501_558, 1887)
-			// Standard Error: 1_070_260
-			.saturating_add(Weight::from_parts(599_011_690, 0).saturating_mul(p.into()))
+		// Minimum execution time: 30_729_000 picoseconds.
+		Weight::from_parts(37_861_389, 1887)
+			// Standard Error: 18_741
+			.saturating_add(Weight::from_parts(31_377_118, 0).saturating_mul(p.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().reads((3_u64).saturating_mul(p.into())))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(p.into())))
 			.saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into()))
 	}
-	/// Storage: AssetRate ConversionRateToNative (r:1 w:0)
-	/// Proof: AssetRate ConversionRateToNative (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen)
-	/// Storage: Treasury SpendCount (r:1 w:1)
-	/// Proof: Treasury SpendCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: Treasury Spends (r:0 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `AssetRate::ConversionRateToNative` (r:1 w:0)
+	/// Proof: `AssetRate::ConversionRateToNative` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::SpendCount` (r:1 w:1)
+	/// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `Treasury::Spends` (r:0 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn spend() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `140`
 		//  Estimated: `3501`
-		// Minimum execution time: 214_000_000 picoseconds.
-		Weight::from_parts(216_000_000, 3501)
+		// Minimum execution time: 13_700_000 picoseconds.
+		Weight::from_parts(14_519_000, 3501)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
-	/// Storage: Assets Asset (r:1 w:1)
-	/// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen)
-	/// Storage: Assets Account (r:2 w:2)
-	/// Proof: Assets Account (max_values: None, max_size: Some(134), added: 2609, mode: MaxEncodedLen)
-	/// Storage: System Account (r:1 w:1)
-	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Asset` (r:1 w:1)
+	/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
+	/// Storage: `Assets::Account` (r:2 w:2)
+	/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	fn payout() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `705`
+		//  Measured:  `709`
 		//  Estimated: `6208`
-		// Minimum execution time: 760_000_000 picoseconds.
-		Weight::from_parts(822_000_000, 6208)
+		// Minimum execution time: 54_888_000 picoseconds.
+		Weight::from_parts(55_966_000, 6208)
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn check_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `194`
-		//  Estimated: `3534`
-		// Minimum execution time: 153_000_000 picoseconds.
-		Weight::from_parts(160_000_000, 3534)
+		//  Measured:  `198`
+		//  Estimated: `3538`
+		// Minimum execution time: 11_802_000 picoseconds.
+		Weight::from_parts(12_421_000, 3538)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
-	/// Storage: Treasury Spends (r:1 w:1)
-	/// Proof: Treasury Spends (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen)
+	/// Storage: `Treasury::Spends` (r:1 w:1)
+	/// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
 	fn void_spend() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `194`
-		//  Estimated: `3534`
-		// Minimum execution time: 147_000_000 picoseconds.
-		Weight::from_parts(181_000_000, 3534)
+		//  Measured:  `198`
+		//  Estimated: `3538`
+		// Minimum execution time: 10_571_000 picoseconds.
+		Weight::from_parts(11_052_000, 3538)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/tx-pause/src/weights.rs b/substrate/frame/tx-pause/src/weights.rs
index b733e64b159..14fead12a8e 100644
--- a/substrate/frame/tx-pause/src/weights.rs
+++ b/substrate/frame/tx-pause/src/weights.rs
@@ -17,27 +17,29 @@
 
 //! Autogenerated weights for `pallet_tx_pause`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-08-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-aahe6cbd-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_tx_pause
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json
-// --pallet=pallet_tx_pause
-// --chain=dev
-// --header=./HEADER-APACHE2
-// --output=./frame/tx-pause/src/weights.rs
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/tx-pause/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -62,8 +64,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `3`
 		//  Estimated: `3997`
-		// Minimum execution time: 15_096_000 picoseconds.
-		Weight::from_parts(15_437_000, 3997)
+		// Minimum execution time: 12_014_000 picoseconds.
+		Weight::from_parts(12_980_000, 3997)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -73,8 +75,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `565`
 		//  Estimated: `3997`
-		// Minimum execution time: 21_546_000 picoseconds.
-		Weight::from_parts(22_178_000, 3997)
+		// Minimum execution time: 17_955_000 picoseconds.
+		Weight::from_parts(18_348_000, 3997)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -88,8 +90,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `3`
 		//  Estimated: `3997`
-		// Minimum execution time: 15_096_000 picoseconds.
-		Weight::from_parts(15_437_000, 3997)
+		// Minimum execution time: 12_014_000 picoseconds.
+		Weight::from_parts(12_980_000, 3997)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -99,8 +101,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `565`
 		//  Estimated: `3997`
-		// Minimum execution time: 21_546_000 picoseconds.
-		Weight::from_parts(22_178_000, 3997)
+		// Minimum execution time: 17_955_000 picoseconds.
+		Weight::from_parts(18_348_000, 3997)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
diff --git a/substrate/frame/uniques/src/weights.rs b/substrate/frame/uniques/src/weights.rs
index eb80ee550a1..6c7b60b82e5 100644
--- a/substrate/frame/uniques/src/weights.rs
+++ b/substrate/frame/uniques/src/weights.rs
@@ -17,27 +17,29 @@
 
 //! Autogenerated weights for `pallet_uniques`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-07-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-gghbxkbs-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_uniques
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/substrate/.git/.artifacts/bench.json
-// --pallet=pallet_uniques
-// --chain=dev
-// --header=./HEADER-APACHE2
-// --output=./frame/uniques/src/weights.rs
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/uniques/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -88,8 +90,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `249`
 		//  Estimated: `3643`
-		// Minimum execution time: 31_393_000 picoseconds.
-		Weight::from_parts(32_933_000, 3643)
+		// Minimum execution time: 27_960_000 picoseconds.
+		Weight::from_parts(28_781_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -101,8 +103,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `109`
 		//  Estimated: `3643`
-		// Minimum execution time: 14_827_000 picoseconds.
-		Weight::from_parts(15_273_000, 3643)
+		// Minimum execution time: 11_970_000 picoseconds.
+		Weight::from_parts(12_512_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -111,13 +113,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Storage: `Uniques::Asset` (r:1001 w:1000)
 	/// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1000 w:1000)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassAccount` (r:0 w:1)
 	/// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:0 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Account` (r:0 w:1000)
 	/// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1)
@@ -128,15 +130,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	fn destroy(n: u32, m: u32, a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)`
-		//  Estimated: `3643 + a * (2839 ±0) + m * (2583 ±0) + n * (2597 ±0)`
-		// Minimum execution time: 3_281_673_000 picoseconds.
-		Weight::from_parts(3_443_387_000, 3643)
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(7_914_842, 0).saturating_mul(n.into()))
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(519_960, 0).saturating_mul(m.into()))
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(462_690, 0).saturating_mul(a.into()))
+		//  Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)`
+		// Minimum execution time: 2_979_858_000 picoseconds.
+		Weight::from_parts(3_007_268_000, 3643)
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(6_943_612, 0).saturating_mul(n.into()))
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(398_114, 0).saturating_mul(m.into()))
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(369_941, 0).saturating_mul(a.into()))
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into())))
@@ -145,8 +147,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into())))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into())))
-			.saturating_add(Weight::from_parts(0, 2839).saturating_mul(a.into()))
-			.saturating_add(Weight::from_parts(0, 2583).saturating_mul(m.into()))
+			.saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into()))
+			.saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into()))
 	}
 	/// Storage: `Uniques::Asset` (r:1 w:1)
@@ -161,8 +163,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 38_122_000 picoseconds.
-		Weight::from_parts(38_924_000, 3643)
+		// Minimum execution time: 32_733_000 picoseconds.
+		Weight::from_parts(33_487_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -178,8 +180,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 38_835_000 picoseconds.
-		Weight::from_parts(39_754_000, 3643)
+		// Minimum execution time: 34_202_000 picoseconds.
+		Weight::from_parts(35_146_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -195,8 +197,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 27_032_000 picoseconds.
-		Weight::from_parts(27_793_000, 3643)
+		// Minimum execution time: 24_285_000 picoseconds.
+		Weight::from_parts(25_300_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -209,10 +211,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `805 + i * (76 ±0)`
 		//  Estimated: `3643 + i * (2597 ±0)`
-		// Minimum execution time: 14_737_000 picoseconds.
-		Weight::from_parts(15_070_000, 3643)
-			// Standard Error: 22_500
-			.saturating_add(Weight::from_parts(18_855_468, 0).saturating_mul(i.into()))
+		// Minimum execution time: 11_641_000 picoseconds.
+		Weight::from_parts(12_261_000, 3643)
+			// Standard Error: 18_897
+			.saturating_add(Weight::from_parts(15_263_570, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
@@ -227,8 +229,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_664_000 picoseconds.
-		Weight::from_parts(19_455_000, 3643)
+		// Minimum execution time: 16_122_000 picoseconds.
+		Weight::from_parts(16_627_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -240,8 +242,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_247_000 picoseconds.
-		Weight::from_parts(18_763_000, 3643)
+		// Minimum execution time: 15_824_000 picoseconds.
+		Weight::from_parts(16_522_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -251,8 +253,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 13_219_000 picoseconds.
-		Weight::from_parts(13_923_000, 3643)
+		// Minimum execution time: 10_802_000 picoseconds.
+		Weight::from_parts(11_206_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -262,8 +264,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 13_376_000 picoseconds.
-		Weight::from_parts(13_904_000, 3643)
+		// Minimum execution time: 10_805_000 picoseconds.
+		Weight::from_parts(11_340_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -271,16 +273,18 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 	/// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassAccount` (r:0 w:2)
 	/// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `423`
+		//  Measured:  `597`
 		//  Estimated: `3643`
-		// Minimum execution time: 22_353_000 picoseconds.
-		Weight::from_parts(23_222_000, 3643)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
-			.saturating_add(T::DbWeight::get().writes(4_u64))
+		// Minimum execution time: 24_213_000 picoseconds.
+		Weight::from_parts(25_547_000, 3643)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(T::DbWeight::get().writes(5_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
@@ -288,8 +292,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 14_072_000 picoseconds.
-		Weight::from_parts(14_619_000, 3643)
+		// Minimum execution time: 11_256_000 picoseconds.
+		Weight::from_parts(11_585_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -301,90 +305,90 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 17_081_000 picoseconds.
-		Weight::from_parts(17_698_000, 3643)
+		// Minimum execution time: 14_616_000 picoseconds.
+		Weight::from_parts(15_064_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1 w:1)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	fn set_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `547`
-		//  Estimated: `3829`
-		// Minimum execution time: 41_501_000 picoseconds.
-		Weight::from_parts(43_101_000, 3829)
+		//  Measured:  `626`
+		//  Estimated: `3652`
+		// Minimum execution time: 35_640_000 picoseconds.
+		Weight::from_parts(37_007_000, 3652)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1 w:1)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	fn clear_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
-		//  Estimated: `3829`
-		// Minimum execution time: 39_722_000 picoseconds.
-		Weight::from_parts(40_390_000, 3829)
+		//  Measured:  `823`
+		//  Estimated: `3652`
+		// Minimum execution time: 34_410_000 picoseconds.
+		Weight::from_parts(35_431_000, 3652)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	fn set_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `415`
-		//  Estimated: `3643`
-		// Minimum execution time: 30_726_000 picoseconds.
-		Weight::from_parts(31_557_000, 3643)
+		//  Estimated: `3652`
+		// Minimum execution time: 26_187_000 picoseconds.
+		Weight::from_parts(27_837_000, 3652)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `547`
-		//  Estimated: `3643`
-		// Minimum execution time: 31_303_000 picoseconds.
-		Weight::from_parts(32_389_000, 3643)
+		//  Measured:  `626`
+		//  Estimated: `3652`
+		// Minimum execution time: 26_640_000 picoseconds.
+		Weight::from_parts(27_688_000, 3652)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	fn set_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 32_155_000 picoseconds.
-		Weight::from_parts(32_885_000, 3643)
+		// Minimum execution time: 26_781_000 picoseconds.
+		Weight::from_parts(27_628_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:0)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	fn clear_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `461`
+		//  Measured:  `540`
 		//  Estimated: `3643`
-		// Minimum execution time: 30_044_000 picoseconds.
-		Weight::from_parts(31_405_000, 3643)
+		// Minimum execution time: 26_295_000 picoseconds.
+		Weight::from_parts(26_903_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -396,8 +400,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_904_000 picoseconds.
-		Weight::from_parts(19_687_000, 3643)
+		// Minimum execution time: 16_678_000 picoseconds.
+		Weight::from_parts(17_548_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -409,8 +413,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `528`
 		//  Estimated: `3643`
-		// Minimum execution time: 19_144_000 picoseconds.
-		Weight::from_parts(19_706_000, 3643)
+		// Minimum execution time: 16_408_000 picoseconds.
+		Weight::from_parts(16_957_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -420,8 +424,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `109`
 		//  Estimated: `3517`
-		// Minimum execution time: 15_339_000 picoseconds.
-		Weight::from_parts(15_918_000, 3517)
+		// Minimum execution time: 12_568_000 picoseconds.
+		Weight::from_parts(12_960_000, 3517)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -433,8 +437,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 15_387_000 picoseconds.
-		Weight::from_parts(15_726_000, 3643)
+		// Minimum execution time: 13_110_000 picoseconds.
+		Weight::from_parts(13_620_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(2_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -446,8 +450,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `326`
 		//  Estimated: `3587`
-		// Minimum execution time: 15_873_000 picoseconds.
-		Weight::from_parts(16_860_000, 3587)
+		// Minimum execution time: 13_568_000 picoseconds.
+		Weight::from_parts(14_211_000, 3587)
 			.saturating_add(T::DbWeight::get().reads(1_u64))
 			.saturating_add(T::DbWeight::get().writes(1_u64))
 	}
@@ -463,8 +467,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `607`
 		//  Estimated: `3643`
-		// Minimum execution time: 37_245_000 picoseconds.
-		Weight::from_parts(38_383_000, 3643)
+		// Minimum execution time: 32_660_000 picoseconds.
+		Weight::from_parts(33_734_000, 3643)
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -480,8 +484,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `249`
 		//  Estimated: `3643`
-		// Minimum execution time: 31_393_000 picoseconds.
-		Weight::from_parts(32_933_000, 3643)
+		// Minimum execution time: 27_960_000 picoseconds.
+		Weight::from_parts(28_781_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -493,8 +497,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `109`
 		//  Estimated: `3643`
-		// Minimum execution time: 14_827_000 picoseconds.
-		Weight::from_parts(15_273_000, 3643)
+		// Minimum execution time: 11_970_000 picoseconds.
+		Weight::from_parts(12_512_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -503,13 +507,13 @@ impl WeightInfo for () {
 	/// Storage: `Uniques::Asset` (r:1001 w:1000)
 	/// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1000 w:1000)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1000 w:1000)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassAccount` (r:0 w:1)
 	/// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:0 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Account` (r:0 w:1000)
 	/// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1)
@@ -520,15 +524,15 @@ impl WeightInfo for () {
 	fn destroy(n: u32, m: u32, a: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `418 + a * (107 ±0) + m * (56 ±0) + n * (76 ±0)`
-		//  Estimated: `3643 + a * (2839 ±0) + m * (2583 ±0) + n * (2597 ±0)`
-		// Minimum execution time: 3_281_673_000 picoseconds.
-		Weight::from_parts(3_443_387_000, 3643)
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(7_914_842, 0).saturating_mul(n.into()))
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(519_960, 0).saturating_mul(m.into()))
-			// Standard Error: 41_937
-			.saturating_add(Weight::from_parts(462_690, 0).saturating_mul(a.into()))
+		//  Estimated: `3643 + a * (2647 ±0) + m * (2662 ±0) + n * (2597 ±0)`
+		// Minimum execution time: 2_979_858_000 picoseconds.
+		Weight::from_parts(3_007_268_000, 3643)
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(6_943_612, 0).saturating_mul(n.into()))
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(398_114, 0).saturating_mul(m.into()))
+			// Standard Error: 29_899
+			.saturating_add(Weight::from_parts(369_941, 0).saturating_mul(a.into()))
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(m.into())))
@@ -537,8 +541,8 @@ impl WeightInfo for () {
 			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(n.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(m.into())))
 			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(a.into())))
-			.saturating_add(Weight::from_parts(0, 2839).saturating_mul(a.into()))
-			.saturating_add(Weight::from_parts(0, 2583).saturating_mul(m.into()))
+			.saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into()))
+			.saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into()))
 			.saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into()))
 	}
 	/// Storage: `Uniques::Asset` (r:1 w:1)
@@ -553,8 +557,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 38_122_000 picoseconds.
-		Weight::from_parts(38_924_000, 3643)
+		// Minimum execution time: 32_733_000 picoseconds.
+		Weight::from_parts(33_487_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -570,8 +574,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 38_835_000 picoseconds.
-		Weight::from_parts(39_754_000, 3643)
+		// Minimum execution time: 34_202_000 picoseconds.
+		Weight::from_parts(35_146_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -587,8 +591,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 27_032_000 picoseconds.
-		Weight::from_parts(27_793_000, 3643)
+		// Minimum execution time: 24_285_000 picoseconds.
+		Weight::from_parts(25_300_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -601,10 +605,10 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `805 + i * (76 ±0)`
 		//  Estimated: `3643 + i * (2597 ±0)`
-		// Minimum execution time: 14_737_000 picoseconds.
-		Weight::from_parts(15_070_000, 3643)
-			// Standard Error: 22_500
-			.saturating_add(Weight::from_parts(18_855_468, 0).saturating_mul(i.into()))
+		// Minimum execution time: 11_641_000 picoseconds.
+		Weight::from_parts(12_261_000, 3643)
+			// Standard Error: 18_897
+			.saturating_add(Weight::from_parts(15_263_570, 0).saturating_mul(i.into()))
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
@@ -619,8 +623,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_664_000 picoseconds.
-		Weight::from_parts(19_455_000, 3643)
+		// Minimum execution time: 16_122_000 picoseconds.
+		Weight::from_parts(16_627_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -632,8 +636,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_247_000 picoseconds.
-		Weight::from_parts(18_763_000, 3643)
+		// Minimum execution time: 15_824_000 picoseconds.
+		Weight::from_parts(16_522_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -643,8 +647,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 13_219_000 picoseconds.
-		Weight::from_parts(13_923_000, 3643)
+		// Minimum execution time: 10_802_000 picoseconds.
+		Weight::from_parts(11_206_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -654,8 +658,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 13_376_000 picoseconds.
-		Weight::from_parts(13_904_000, 3643)
+		// Minimum execution time: 10_805_000 picoseconds.
+		Weight::from_parts(11_340_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -663,16 +667,18 @@ impl WeightInfo for () {
 	/// Proof: `Uniques::OwnershipAcceptance` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
+	/// Storage: `System::Account` (r:1 w:1)
+	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassAccount` (r:0 w:2)
 	/// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(68), added: 2543, mode: `MaxEncodedLen`)
 	fn transfer_ownership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `423`
+		//  Measured:  `597`
 		//  Estimated: `3643`
-		// Minimum execution time: 22_353_000 picoseconds.
-		Weight::from_parts(23_222_000, 3643)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
-			.saturating_add(RocksDbWeight::get().writes(4_u64))
+		// Minimum execution time: 24_213_000 picoseconds.
+		Weight::from_parts(25_547_000, 3643)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(RocksDbWeight::get().writes(5_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
@@ -680,8 +686,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 14_072_000 picoseconds.
-		Weight::from_parts(14_619_000, 3643)
+		// Minimum execution time: 11_256_000 picoseconds.
+		Weight::from_parts(11_585_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -693,90 +699,90 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 17_081_000 picoseconds.
-		Weight::from_parts(17_698_000, 3643)
+		// Minimum execution time: 14_616_000 picoseconds.
+		Weight::from_parts(15_064_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1 w:1)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	fn set_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `547`
-		//  Estimated: `3829`
-		// Minimum execution time: 41_501_000 picoseconds.
-		Weight::from_parts(43_101_000, 3829)
+		//  Measured:  `626`
+		//  Estimated: `3652`
+		// Minimum execution time: 35_640_000 picoseconds.
+		Weight::from_parts(37_007_000, 3652)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:0)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::Attribute` (r:1 w:1)
-	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(364), added: 2839, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::Attribute` (`max_values`: None, `max_size`: Some(172), added: 2647, mode: `MaxEncodedLen`)
 	fn clear_attribute() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `936`
-		//  Estimated: `3829`
-		// Minimum execution time: 39_722_000 picoseconds.
-		Weight::from_parts(40_390_000, 3829)
+		//  Measured:  `823`
+		//  Estimated: `3652`
+		// Minimum execution time: 34_410_000 picoseconds.
+		Weight::from_parts(35_431_000, 3652)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	fn set_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `415`
-		//  Estimated: `3643`
-		// Minimum execution time: 30_726_000 picoseconds.
-		Weight::from_parts(31_557_000, 3643)
+		//  Estimated: `3652`
+		// Minimum execution time: 26_187_000 picoseconds.
+		Weight::from_parts(27_837_000, 3652)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::InstanceMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::InstanceMetadataOf` (`max_values`: None, `max_size`: Some(187), added: 2662, mode: `MaxEncodedLen`)
 	fn clear_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `547`
-		//  Estimated: `3643`
-		// Minimum execution time: 31_303_000 picoseconds.
-		Weight::from_parts(32_389_000, 3643)
+		//  Measured:  `626`
+		//  Estimated: `3652`
+		// Minimum execution time: 26_640_000 picoseconds.
+		Weight::from_parts(27_688_000, 3652)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:1)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	fn set_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 32_155_000 picoseconds.
-		Weight::from_parts(32_885_000, 3643)
+		// Minimum execution time: 26_781_000 picoseconds.
+		Weight::from_parts(27_628_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 	/// Storage: `Uniques::Class` (r:1 w:0)
 	/// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(178), added: 2653, mode: `MaxEncodedLen`)
 	/// Storage: `Uniques::ClassMetadataOf` (r:1 w:1)
-	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(88), added: 2563, mode: `MaxEncodedLen`)
+	/// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(167), added: 2642, mode: `MaxEncodedLen`)
 	fn clear_collection_metadata() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `461`
+		//  Measured:  `540`
 		//  Estimated: `3643`
-		// Minimum execution time: 30_044_000 picoseconds.
-		Weight::from_parts(31_405_000, 3643)
+		// Minimum execution time: 26_295_000 picoseconds.
+		Weight::from_parts(26_903_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -788,8 +794,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `495`
 		//  Estimated: `3643`
-		// Minimum execution time: 18_904_000 picoseconds.
-		Weight::from_parts(19_687_000, 3643)
+		// Minimum execution time: 16_678_000 picoseconds.
+		Weight::from_parts(17_548_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -801,8 +807,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `528`
 		//  Estimated: `3643`
-		// Minimum execution time: 19_144_000 picoseconds.
-		Weight::from_parts(19_706_000, 3643)
+		// Minimum execution time: 16_408_000 picoseconds.
+		Weight::from_parts(16_957_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -812,8 +818,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `109`
 		//  Estimated: `3517`
-		// Minimum execution time: 15_339_000 picoseconds.
-		Weight::from_parts(15_918_000, 3517)
+		// Minimum execution time: 12_568_000 picoseconds.
+		Weight::from_parts(12_960_000, 3517)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -825,8 +831,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `349`
 		//  Estimated: `3643`
-		// Minimum execution time: 15_387_000 picoseconds.
-		Weight::from_parts(15_726_000, 3643)
+		// Minimum execution time: 13_110_000 picoseconds.
+		Weight::from_parts(13_620_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(2_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -838,8 +844,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `326`
 		//  Estimated: `3587`
-		// Minimum execution time: 15_873_000 picoseconds.
-		Weight::from_parts(16_860_000, 3587)
+		// Minimum execution time: 13_568_000 picoseconds.
+		Weight::from_parts(14_211_000, 3587)
 			.saturating_add(RocksDbWeight::get().reads(1_u64))
 			.saturating_add(RocksDbWeight::get().writes(1_u64))
 	}
@@ -855,8 +861,8 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `607`
 		//  Estimated: `3643`
-		// Minimum execution time: 37_245_000 picoseconds.
-		Weight::from_parts(38_383_000, 3643)
+		// Minimum execution time: 32_660_000 picoseconds.
+		Weight::from_parts(33_734_000, 3643)
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
diff --git a/substrate/frame/utility/src/weights.rs b/substrate/frame/utility/src/weights.rs
index 1a3ea6c1f7f..60b1c48f086 100644
--- a/substrate/frame/utility/src/weights.rs
+++ b/substrate/frame/utility/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_utility
+//! Autogenerated weights for `pallet_utility`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/utility/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/utility/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_utility.
+/// Weight functions needed for `pallet_utility`.
 pub trait WeightInfo {
 	fn batch(c: u32, ) -> Weight;
 	fn as_derivative() -> Weight;
@@ -59,99 +58,139 @@ pub trait WeightInfo {
 	fn force_batch(c: u32, ) -> Weight;
 }
 
-/// Weights for pallet_utility using the Substrate node and recommended hardware.
+/// Weights for `pallet_utility` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn batch(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_763_000 picoseconds.
-		Weight::from_parts(16_943_157, 0)
-			// Standard Error: 1_904
-			.saturating_add(Weight::from_parts(4_653_855, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 5_143_000 picoseconds.
+		Weight::from_parts(11_552_299, 3997)
+			// Standard Error: 2_325
+			.saturating_add(Weight::from_parts(4_708_951, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 5_149_000 picoseconds.
-		Weight::from_parts(5_268_000, 0)
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 9_103_000 picoseconds.
+		Weight::from_parts(9_549_000, 3997)
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn batch_all(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_976_000 picoseconds.
-		Weight::from_parts(16_448_433, 0)
-			// Standard Error: 1_834
-			.saturating_add(Weight::from_parts(4_796_983, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 5_147_000 picoseconds.
+		Weight::from_parts(15_698_086, 3997)
+			// Standard Error: 3_066
+			.saturating_add(Weight::from_parts(4_809_412, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_102_000 picoseconds.
-		Weight::from_parts(9_353_000, 0)
+		// Minimum execution time: 6_683_000 picoseconds.
+		Weight::from_parts(7_047_000, 0)
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn force_batch(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_840_000 picoseconds.
-		Weight::from_parts(17_748_474, 0)
-			// Standard Error: 2_059
-			.saturating_add(Weight::from_parts(4_630_079, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 4_982_000 picoseconds.
+		Weight::from_parts(14_474_780, 3997)
+			// Standard Error: 2_291
+			.saturating_add(Weight::from_parts(4_632_643, 0).saturating_mul(c.into()))
+			.saturating_add(T::DbWeight::get().reads(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn batch(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_763_000 picoseconds.
-		Weight::from_parts(16_943_157, 0)
-			// Standard Error: 1_904
-			.saturating_add(Weight::from_parts(4_653_855, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 5_143_000 picoseconds.
+		Weight::from_parts(11_552_299, 3997)
+			// Standard Error: 2_325
+			.saturating_add(Weight::from_parts(4_708_951, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 5_149_000 picoseconds.
-		Weight::from_parts(5_268_000, 0)
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 9_103_000 picoseconds.
+		Weight::from_parts(9_549_000, 3997)
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn batch_all(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_976_000 picoseconds.
-		Weight::from_parts(16_448_433, 0)
-			// Standard Error: 1_834
-			.saturating_add(Weight::from_parts(4_796_983, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 5_147_000 picoseconds.
+		Weight::from_parts(15_698_086, 3997)
+			// Standard Error: 3_066
+			.saturating_add(Weight::from_parts(4_809_412, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 9_102_000 picoseconds.
-		Weight::from_parts(9_353_000, 0)
+		// Minimum execution time: 6_683_000 picoseconds.
+		Weight::from_parts(7_047_000, 0)
 	}
+	/// Storage: `SafeMode::EnteredUntil` (r:1 w:0)
+	/// Proof: `SafeMode::EnteredUntil` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+	/// Storage: `TxPause::PausedCalls` (r:1 w:0)
+	/// Proof: `TxPause::PausedCalls` (`max_values`: None, `max_size`: Some(532), added: 3007, mode: `MaxEncodedLen`)
 	/// The range of component `c` is `[0, 1000]`.
 	fn force_batch(c: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `0`
-		//  Estimated: `0`
-		// Minimum execution time: 6_840_000 picoseconds.
-		Weight::from_parts(17_748_474, 0)
-			// Standard Error: 2_059
-			.saturating_add(Weight::from_parts(4_630_079, 0).saturating_mul(c.into()))
+		//  Measured:  `145`
+		//  Estimated: `3997`
+		// Minimum execution time: 4_982_000 picoseconds.
+		Weight::from_parts(14_474_780, 3997)
+			// Standard Error: 2_291
+			.saturating_add(Weight::from_parts(4_632_643, 0).saturating_mul(c.into()))
+			.saturating_add(RocksDbWeight::get().reads(2_u64))
 	}
 }
diff --git a/substrate/frame/vesting/src/weights.rs b/substrate/frame/vesting/src/weights.rs
index ddc7db8fa61..d91c47ae195 100644
--- a/substrate/frame/vesting/src/weights.rs
+++ b/substrate/frame/vesting/src/weights.rs
@@ -17,26 +17,28 @@
 
 //! Autogenerated weights for `pallet_vesting`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-10-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// target/production/substrate-node
+// ./target/production/substrate-node
 // benchmark
 // pallet
+// --chain=dev
 // --steps=50
 // --repeat=20
+// --pallet=pallet_vesting
+// --no-storage-info
+// --no-median-slopes
+// --no-min-squares
 // --extrinsic=*
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
-// --pallet=pallet_vesting
-// --chain=dev
-// --header=./substrate/HEADER-APACHE2
 // --output=./substrate/frame/vesting/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
 // --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
@@ -75,12 +77,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `381 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 32_846_000 picoseconds.
-		Weight::from_parts(30_974_459, 4764)
-			// Standard Error: 1_755
-			.saturating_add(Weight::from_parts(73_138, 0).saturating_mul(l.into()))
-			// Standard Error: 3_123
-			.saturating_add(Weight::from_parts(82_417, 0).saturating_mul(s.into()))
+		// Minimum execution time: 31_890_000 picoseconds.
+		Weight::from_parts(31_128_476, 4764)
+			// Standard Error: 1_193
+			.saturating_add(Weight::from_parts(63_760, 0).saturating_mul(l.into()))
+			// Standard Error: 2_124
+			.saturating_add(Weight::from_parts(57_247, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -96,12 +98,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `381 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 34_360_000 picoseconds.
-		Weight::from_parts(34_964_080, 4764)
-			// Standard Error: 1_996
-			.saturating_add(Weight::from_parts(48_024, 0).saturating_mul(l.into()))
-			// Standard Error: 3_552
-			.saturating_add(Weight::from_parts(34_411, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_958_000 picoseconds.
+		Weight::from_parts(33_537_005, 4764)
+			// Standard Error: 1_354
+			.saturating_add(Weight::from_parts(60_604, 0).saturating_mul(l.into()))
+			// Standard Error: 2_410
+			.saturating_add(Weight::from_parts(51_378, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
@@ -119,12 +121,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `484 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 33_859_000 picoseconds.
-		Weight::from_parts(32_950_681, 4764)
-			// Standard Error: 1_745
-			.saturating_add(Weight::from_parts(69_323, 0).saturating_mul(l.into()))
-			// Standard Error: 3_105
-			.saturating_add(Weight::from_parts(86_370, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_243_000 picoseconds.
+		Weight::from_parts(32_552_805, 4764)
+			// Standard Error: 1_413
+			.saturating_add(Weight::from_parts(67_137, 0).saturating_mul(l.into()))
+			// Standard Error: 2_515
+			.saturating_add(Weight::from_parts(70_000, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -142,12 +144,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `484 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 36_239_000 picoseconds.
-		Weight::from_parts(36_459_756, 4764)
-			// Standard Error: 2_051
-			.saturating_add(Weight::from_parts(56_670, 0).saturating_mul(l.into()))
-			// Standard Error: 3_650
-			.saturating_add(Weight::from_parts(49_663, 0).saturating_mul(s.into()))
+		// Minimum execution time: 35_396_000 picoseconds.
+		Weight::from_parts(35_774_949, 4764)
+			// Standard Error: 1_404
+			.saturating_add(Weight::from_parts(55_349, 0).saturating_mul(l.into()))
+			// Standard Error: 2_497
+			.saturating_add(Weight::from_parts(39_228, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -165,12 +167,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `555 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 70_330_000 picoseconds.
-		Weight::from_parts(71_196_328, 4764)
-			// Standard Error: 2_923
-			.saturating_add(Weight::from_parts(67_238, 0).saturating_mul(l.into()))
-			// Standard Error: 5_201
-			.saturating_add(Weight::from_parts(89_102, 0).saturating_mul(s.into()))
+		// Minimum execution time: 68_441_000 picoseconds.
+		Weight::from_parts(68_961_970, 4764)
+			// Standard Error: 2_509
+			.saturating_add(Weight::from_parts(83_345, 0).saturating_mul(l.into()))
+			// Standard Error: 4_464
+			.saturating_add(Weight::from_parts(124_158, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -188,12 +190,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `658 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `6196`
-		// Minimum execution time: 70_235_000 picoseconds.
-		Weight::from_parts(71_960_020, 6196)
-			// Standard Error: 2_493
-			.saturating_add(Weight::from_parts(64_835, 0).saturating_mul(l.into()))
-			// Standard Error: 4_436
-			.saturating_add(Weight::from_parts(102_159, 0).saturating_mul(s.into()))
+		// Minimum execution time: 70_190_000 picoseconds.
+		Weight::from_parts(72_355_984, 6196)
+			// Standard Error: 2_295
+			.saturating_add(Weight::from_parts(59_968, 0).saturating_mul(l.into()))
+			// Standard Error: 4_084
+			.saturating_add(Weight::from_parts(87_090, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(5_u64))
 			.saturating_add(T::DbWeight::get().writes(4_u64))
 	}
@@ -211,12 +213,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `482 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 34_352_000 picoseconds.
-		Weight::from_parts(33_697_027, 4764)
-			// Standard Error: 2_008
-			.saturating_add(Weight::from_parts(79_270, 0).saturating_mul(l.into()))
-			// Standard Error: 3_710
-			.saturating_add(Weight::from_parts(60_691, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_911_000 picoseconds.
+		Weight::from_parts(33_243_006, 4764)
+			// Standard Error: 1_199
+			.saturating_add(Weight::from_parts(70_586, 0).saturating_mul(l.into()))
+			// Standard Error: 2_214
+			.saturating_add(Weight::from_parts(60_985, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -234,12 +236,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `482 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 37_467_000 picoseconds.
-		Weight::from_parts(36_866_847, 4764)
-			// Standard Error: 1_692
-			.saturating_add(Weight::from_parts(57_882, 0).saturating_mul(l.into()))
-			// Standard Error: 3_124
-			.saturating_add(Weight::from_parts(80_266, 0).saturating_mul(s.into()))
+		// Minimum execution time: 36_242_000 picoseconds.
+		Weight::from_parts(35_812_994, 4764)
+			// Standard Error: 1_351
+			.saturating_add(Weight::from_parts(68_256, 0).saturating_mul(l.into()))
+			// Standard Error: 2_496
+			.saturating_add(Weight::from_parts(66_171, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -257,12 +259,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `555 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 41_497_000 picoseconds.
-		Weight::from_parts(38_763_834, 4764)
-			// Standard Error: 2_030
-			.saturating_add(Weight::from_parts(99_580, 0).saturating_mul(l.into()))
-			// Standard Error: 3_750
-			.saturating_add(Weight::from_parts(132_188, 0).saturating_mul(s.into()))
+		// Minimum execution time: 37_817_000 picoseconds.
+		Weight::from_parts(37_397_127, 4764)
+			// Standard Error: 1_665
+			.saturating_add(Weight::from_parts(72_049, 0).saturating_mul(l.into()))
+			// Standard Error: 3_075
+			.saturating_add(Weight::from_parts(60_973, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 	}
@@ -282,12 +284,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `381 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 32_846_000 picoseconds.
-		Weight::from_parts(30_974_459, 4764)
-			// Standard Error: 1_755
-			.saturating_add(Weight::from_parts(73_138, 0).saturating_mul(l.into()))
-			// Standard Error: 3_123
-			.saturating_add(Weight::from_parts(82_417, 0).saturating_mul(s.into()))
+		// Minimum execution time: 31_890_000 picoseconds.
+		Weight::from_parts(31_128_476, 4764)
+			// Standard Error: 1_193
+			.saturating_add(Weight::from_parts(63_760, 0).saturating_mul(l.into()))
+			// Standard Error: 2_124
+			.saturating_add(Weight::from_parts(57_247, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -303,12 +305,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `381 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 34_360_000 picoseconds.
-		Weight::from_parts(34_964_080, 4764)
-			// Standard Error: 1_996
-			.saturating_add(Weight::from_parts(48_024, 0).saturating_mul(l.into()))
-			// Standard Error: 3_552
-			.saturating_add(Weight::from_parts(34_411, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_958_000 picoseconds.
+		Weight::from_parts(33_537_005, 4764)
+			// Standard Error: 1_354
+			.saturating_add(Weight::from_parts(60_604, 0).saturating_mul(l.into()))
+			// Standard Error: 2_410
+			.saturating_add(Weight::from_parts(51_378, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
@@ -326,12 +328,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `484 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 33_859_000 picoseconds.
-		Weight::from_parts(32_950_681, 4764)
-			// Standard Error: 1_745
-			.saturating_add(Weight::from_parts(69_323, 0).saturating_mul(l.into()))
-			// Standard Error: 3_105
-			.saturating_add(Weight::from_parts(86_370, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_243_000 picoseconds.
+		Weight::from_parts(32_552_805, 4764)
+			// Standard Error: 1_413
+			.saturating_add(Weight::from_parts(67_137, 0).saturating_mul(l.into()))
+			// Standard Error: 2_515
+			.saturating_add(Weight::from_parts(70_000, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -349,12 +351,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `484 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 36_239_000 picoseconds.
-		Weight::from_parts(36_459_756, 4764)
-			// Standard Error: 2_051
-			.saturating_add(Weight::from_parts(56_670, 0).saturating_mul(l.into()))
-			// Standard Error: 3_650
-			.saturating_add(Weight::from_parts(49_663, 0).saturating_mul(s.into()))
+		// Minimum execution time: 35_396_000 picoseconds.
+		Weight::from_parts(35_774_949, 4764)
+			// Standard Error: 1_404
+			.saturating_add(Weight::from_parts(55_349, 0).saturating_mul(l.into()))
+			// Standard Error: 2_497
+			.saturating_add(Weight::from_parts(39_228, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -372,12 +374,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `555 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 70_330_000 picoseconds.
-		Weight::from_parts(71_196_328, 4764)
-			// Standard Error: 2_923
-			.saturating_add(Weight::from_parts(67_238, 0).saturating_mul(l.into()))
-			// Standard Error: 5_201
-			.saturating_add(Weight::from_parts(89_102, 0).saturating_mul(s.into()))
+		// Minimum execution time: 68_441_000 picoseconds.
+		Weight::from_parts(68_961_970, 4764)
+			// Standard Error: 2_509
+			.saturating_add(Weight::from_parts(83_345, 0).saturating_mul(l.into()))
+			// Standard Error: 4_464
+			.saturating_add(Weight::from_parts(124_158, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -395,12 +397,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `658 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `6196`
-		// Minimum execution time: 70_235_000 picoseconds.
-		Weight::from_parts(71_960_020, 6196)
-			// Standard Error: 2_493
-			.saturating_add(Weight::from_parts(64_835, 0).saturating_mul(l.into()))
-			// Standard Error: 4_436
-			.saturating_add(Weight::from_parts(102_159, 0).saturating_mul(s.into()))
+		// Minimum execution time: 70_190_000 picoseconds.
+		Weight::from_parts(72_355_984, 6196)
+			// Standard Error: 2_295
+			.saturating_add(Weight::from_parts(59_968, 0).saturating_mul(l.into()))
+			// Standard Error: 4_084
+			.saturating_add(Weight::from_parts(87_090, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(5_u64))
 			.saturating_add(RocksDbWeight::get().writes(4_u64))
 	}
@@ -418,12 +420,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `482 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 34_352_000 picoseconds.
-		Weight::from_parts(33_697_027, 4764)
-			// Standard Error: 2_008
-			.saturating_add(Weight::from_parts(79_270, 0).saturating_mul(l.into()))
-			// Standard Error: 3_710
-			.saturating_add(Weight::from_parts(60_691, 0).saturating_mul(s.into()))
+		// Minimum execution time: 33_911_000 picoseconds.
+		Weight::from_parts(33_243_006, 4764)
+			// Standard Error: 1_199
+			.saturating_add(Weight::from_parts(70_586, 0).saturating_mul(l.into()))
+			// Standard Error: 2_214
+			.saturating_add(Weight::from_parts(60_985, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -441,12 +443,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `482 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 37_467_000 picoseconds.
-		Weight::from_parts(36_866_847, 4764)
-			// Standard Error: 1_692
-			.saturating_add(Weight::from_parts(57_882, 0).saturating_mul(l.into()))
-			// Standard Error: 3_124
-			.saturating_add(Weight::from_parts(80_266, 0).saturating_mul(s.into()))
+		// Minimum execution time: 36_242_000 picoseconds.
+		Weight::from_parts(35_812_994, 4764)
+			// Standard Error: 1_351
+			.saturating_add(Weight::from_parts(68_256, 0).saturating_mul(l.into()))
+			// Standard Error: 2_496
+			.saturating_add(Weight::from_parts(66_171, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
@@ -464,12 +466,12 @@ impl WeightInfo for () {
 		// Proof Size summary in bytes:
 		//  Measured:  `555 + l * (25 ±0) + s * (36 ±0)`
 		//  Estimated: `4764`
-		// Minimum execution time: 41_497_000 picoseconds.
-		Weight::from_parts(38_763_834, 4764)
-			// Standard Error: 2_030
-			.saturating_add(Weight::from_parts(99_580, 0).saturating_mul(l.into()))
-			// Standard Error: 3_750
-			.saturating_add(Weight::from_parts(132_188, 0).saturating_mul(s.into()))
+		// Minimum execution time: 37_817_000 picoseconds.
+		Weight::from_parts(37_397_127, 4764)
+			// Standard Error: 1_665
+			.saturating_add(Weight::from_parts(72_049, 0).saturating_mul(l.into()))
+			// Standard Error: 3_075
+			.saturating_add(Weight::from_parts(60_973, 0).saturating_mul(s.into()))
 			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 	}
diff --git a/substrate/frame/whitelist/src/weights.rs b/substrate/frame/whitelist/src/weights.rs
index de42c5a5841..13b653f6ca7 100644
--- a/substrate/frame/whitelist/src/weights.rs
+++ b/substrate/frame/whitelist/src/weights.rs
@@ -15,16 +15,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-//! Autogenerated weights for pallet_whitelist
+//! Autogenerated weights for `pallet_whitelist`
 //!
-//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-06-16, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-03-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `runner-e8ezs4ez-project-145-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
-//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
+//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`
 
 // Executed Command:
-// ./target/production/substrate
+// ./target/production/substrate-node
 // benchmark
 // pallet
 // --chain=dev
@@ -35,12 +35,11 @@
 // --no-median-slopes
 // --no-min-squares
 // --extrinsic=*
-// --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --output=./frame/whitelist/src/weights.rs
-// --header=./HEADER-APACHE2
-// --template=./.maintain/frame-weight-template.hbs
+// --output=./substrate/frame/whitelist/src/weights.rs
+// --header=./substrate/HEADER-APACHE2
+// --template=./substrate/.maintain/frame-weight-template.hbs
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,7 +49,7 @@
 use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
 use core::marker::PhantomData;
 
-/// Weight functions needed for pallet_whitelist.
+/// Weight functions needed for `pallet_whitelist`.
 pub trait WeightInfo {
 	fn whitelist_call() -> Weight;
 	fn remove_whitelisted_call() -> Weight;
@@ -58,133 +57,149 @@ pub trait WeightInfo {
 	fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight;
 }
 
-/// Weights for pallet_whitelist using the Substrate node and recommended hardware.
+/// Weights for `pallet_whitelist` using the Substrate node and recommended hardware.
 pub struct SubstrateWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn whitelist_call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `217`
+		//  Measured:  `317`
 		//  Estimated: `3556`
-		// Minimum execution time: 19_914_000 picoseconds.
-		Weight::from_parts(20_892_000, 3556)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 18_503_000 picoseconds.
+		Weight::from_parts(19_497_000, 3556)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn remove_whitelisted_call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `346`
+		//  Measured:  `446`
 		//  Estimated: `3556`
-		// Minimum execution time: 18_142_000 picoseconds.
-		Weight::from_parts(18_529_000, 3556)
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 17_633_000 picoseconds.
+		Weight::from_parts(18_196_000, 3556)
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:1 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: Measured)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 4194294]`.
 	fn dispatch_whitelisted_call(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `422 + n * (1 ±0)`
-		//  Estimated: `3886 + n * (1 ±0)`
-		// Minimum execution time: 30_671_000 picoseconds.
-		Weight::from_parts(31_197_000, 3886)
+		//  Measured:  `522 + n * (1 ±0)`
+		//  Estimated: `3986 + n * (1 ±0)`
+		// Minimum execution time: 28_020_000 picoseconds.
+		Weight::from_parts(28_991_000, 3986)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(3_u64))
+			.saturating_add(Weight::from_parts(1_171, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(4_u64))
 			.saturating_add(T::DbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 10000]`.
 	fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `346`
+		//  Measured:  `446`
 		//  Estimated: `3556`
-		// Minimum execution time: 22_099_000 picoseconds.
-		Weight::from_parts(23_145_477, 3556)
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(1_422, 0).saturating_mul(n.into()))
-			.saturating_add(T::DbWeight::get().reads(2_u64))
+		// Minimum execution time: 21_916_000 picoseconds.
+		Weight::from_parts(23_082_065, 3556)
+			// Standard Error: 6
+			.saturating_add(Weight::from_parts(1_388, 0).saturating_mul(n.into()))
+			.saturating_add(T::DbWeight::get().reads(3_u64))
 			.saturating_add(T::DbWeight::get().writes(2_u64))
 	}
 }
 
-// For backwards compatibility and tests
+// For backwards compatibility and tests.
 impl WeightInfo for () {
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn whitelist_call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `217`
+		//  Measured:  `317`
 		//  Estimated: `3556`
-		// Minimum execution time: 19_914_000 picoseconds.
-		Weight::from_parts(20_892_000, 3556)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 18_503_000 picoseconds.
+		Weight::from_parts(19_497_000, 3556)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	fn remove_whitelisted_call() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `346`
+		//  Measured:  `446`
 		//  Estimated: `3556`
-		// Minimum execution time: 18_142_000 picoseconds.
-		Weight::from_parts(18_529_000, 3556)
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 17_633_000 picoseconds.
+		Weight::from_parts(18_196_000, 3556)
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage PreimageFor (r:1 w:1)
-	/// Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: Measured)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::PreimageFor` (r:1 w:1)
+	/// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 4194294]`.
 	fn dispatch_whitelisted_call(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `422 + n * (1 ±0)`
-		//  Estimated: `3886 + n * (1 ±0)`
-		// Minimum execution time: 30_671_000 picoseconds.
-		Weight::from_parts(31_197_000, 3886)
+		//  Measured:  `522 + n * (1 ±0)`
+		//  Estimated: `3986 + n * (1 ±0)`
+		// Minimum execution time: 28_020_000 picoseconds.
+		Weight::from_parts(28_991_000, 3986)
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_163, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(3_u64))
+			.saturating_add(Weight::from_parts(1_171, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(4_u64))
 			.saturating_add(RocksDbWeight::get().writes(3_u64))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
 	}
-	/// Storage: Whitelist WhitelistedCall (r:1 w:1)
-	/// Proof: Whitelist WhitelistedCall (max_values: None, max_size: Some(40), added: 2515, mode: MaxEncodedLen)
-	/// Storage: Preimage StatusFor (r:1 w:1)
-	/// Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen)
+	/// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+	/// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::StatusFor` (r:1 w:0)
+	/// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+	/// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+	/// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
 	/// The range of component `n` is `[1, 10000]`.
 	fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `346`
+		//  Measured:  `446`
 		//  Estimated: `3556`
-		// Minimum execution time: 22_099_000 picoseconds.
-		Weight::from_parts(23_145_477, 3556)
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(1_422, 0).saturating_mul(n.into()))
-			.saturating_add(RocksDbWeight::get().reads(2_u64))
+		// Minimum execution time: 21_916_000 picoseconds.
+		Weight::from_parts(23_082_065, 3556)
+			// Standard Error: 6
+			.saturating_add(Weight::from_parts(1_388, 0).saturating_mul(n.into()))
+			.saturating_add(RocksDbWeight::get().reads(3_u64))
 			.saturating_add(RocksDbWeight::get().writes(2_u64))
 	}
 }
diff --git a/substrate/primitives/inherents/src/lib.rs b/substrate/primitives/inherents/src/lib.rs
index dd7c294f1e2..415319a6849 100644
--- a/substrate/primitives/inherents/src/lib.rs
+++ b/substrate/primitives/inherents/src/lib.rs
@@ -98,10 +98,10 @@
 //! and production.
 //!
 //! ```
-//! # use sp_runtime::testing::ExtrinsicWrapper;
+//! # use sp_runtime::{generic::UncheckedExtrinsic, testing::MockCallU64};
 //! # use sp_inherents::{InherentIdentifier, InherentData};
 //! # use futures::FutureExt;
-//! # type Block = sp_runtime::testing::Block<ExtrinsicWrapper<()>>;
+//! # type Block = sp_runtime::testing::Block<UncheckedExtrinsic<u64, MockCallU64, (), ()>>;
 //! # const INHERENT_IDENTIFIER: InherentIdentifier = *b"testinh0";
 //! # struct InherentDataProvider;
 //! # #[async_trait::async_trait]
diff --git a/substrate/primitives/metadata-ir/src/lib.rs b/substrate/primitives/metadata-ir/src/lib.rs
index edfa58f8618..66aff2c599f 100644
--- a/substrate/primitives/metadata-ir/src/lib.rs
+++ b/substrate/primitives/metadata-ir/src/lib.rs
@@ -84,7 +84,7 @@ mod test {
 				call_ty: meta_type::<()>(),
 				signature_ty: meta_type::<()>(),
 				extra_ty: meta_type::<()>(),
-				signed_extensions: vec![],
+				extensions: vec![],
 			},
 			ty: meta_type::<()>(),
 			apis: vec![],
diff --git a/substrate/primitives/metadata-ir/src/types.rs b/substrate/primitives/metadata-ir/src/types.rs
index b107d20a8e2..e60881ed6b8 100644
--- a/substrate/primitives/metadata-ir/src/types.rs
+++ b/substrate/primitives/metadata-ir/src/types.rs
@@ -166,10 +166,11 @@ pub struct ExtrinsicMetadataIR<T: Form = MetaForm> {
 	pub call_ty: T::Type,
 	/// The type of the extrinsic's signature.
 	pub signature_ty: T::Type,
-	/// The type of the outermost Extra enum.
+	/// The type of the outermost Extra/Extensions enum.
+	// TODO: metadata-v16: rename this to `extension_ty`.
 	pub extra_ty: T::Type,
-	/// The signed extensions in the order they appear in the extrinsic.
-	pub signed_extensions: Vec<SignedExtensionMetadataIR<T>>,
+	/// The transaction extensions in the order they appear in the extrinsic.
+	pub extensions: Vec<TransactionExtensionMetadataIR<T>>,
 }
 
 impl IntoPortable for ExtrinsicMetadataIR {
@@ -183,27 +184,27 @@ impl IntoPortable for ExtrinsicMetadataIR {
 			call_ty: registry.register_type(&self.call_ty),
 			signature_ty: registry.register_type(&self.signature_ty),
 			extra_ty: registry.register_type(&self.extra_ty),
-			signed_extensions: registry.map_into_portable(self.signed_extensions),
+			extensions: registry.map_into_portable(self.extensions),
 		}
 	}
 }
 
 /// Metadata of an extrinsic's signed extension.
 #[derive(Clone, PartialEq, Eq, Encode, Debug)]
-pub struct SignedExtensionMetadataIR<T: Form = MetaForm> {
+pub struct TransactionExtensionMetadataIR<T: Form = MetaForm> {
 	/// The unique signed extension identifier, which may be different from the type name.
 	pub identifier: T::String,
 	/// The type of the signed extension, with the data to be included in the extrinsic.
 	pub ty: T::Type,
-	/// The type of the additional signed data, with the data to be included in the signed payload
+	/// The type of the additional signed data, with the data to be included in the signed payload.
 	pub additional_signed: T::Type,
 }
 
-impl IntoPortable for SignedExtensionMetadataIR {
-	type Output = SignedExtensionMetadataIR<PortableForm>;
+impl IntoPortable for TransactionExtensionMetadataIR {
+	type Output = TransactionExtensionMetadataIR<PortableForm>;
 
 	fn into_portable(self, registry: &mut Registry) -> Self::Output {
-		SignedExtensionMetadataIR {
+		TransactionExtensionMetadataIR {
 			identifier: self.identifier.into_portable(registry),
 			ty: registry.register_type(&self.ty),
 			additional_signed: registry.register_type(&self.additional_signed),
diff --git a/substrate/primitives/metadata-ir/src/v14.rs b/substrate/primitives/metadata-ir/src/v14.rs
index e1b7a24f765..ec08de34786 100644
--- a/substrate/primitives/metadata-ir/src/v14.rs
+++ b/substrate/primitives/metadata-ir/src/v14.rs
@@ -20,8 +20,8 @@
 use super::types::{
 	ExtrinsicMetadataIR, MetadataIR, PalletCallMetadataIR, PalletConstantMetadataIR,
 	PalletErrorMetadataIR, PalletEventMetadataIR, PalletMetadataIR, PalletStorageMetadataIR,
-	SignedExtensionMetadataIR, StorageEntryMetadataIR, StorageEntryModifierIR, StorageEntryTypeIR,
-	StorageHasherIR,
+	StorageEntryMetadataIR, StorageEntryModifierIR, StorageEntryTypeIR, StorageHasherIR,
+	TransactionExtensionMetadataIR,
 };
 
 use frame_metadata::v14::{
@@ -137,8 +137,8 @@ impl From<PalletErrorMetadataIR> for PalletErrorMetadata {
 	}
 }
 
-impl From<SignedExtensionMetadataIR> for SignedExtensionMetadata {
-	fn from(ir: SignedExtensionMetadataIR) -> Self {
+impl From<TransactionExtensionMetadataIR> for SignedExtensionMetadata {
+	fn from(ir: TransactionExtensionMetadataIR) -> Self {
 		SignedExtensionMetadata {
 			identifier: ir.identifier,
 			ty: ir.ty,
@@ -152,7 +152,7 @@ impl From<ExtrinsicMetadataIR> for ExtrinsicMetadata {
 		ExtrinsicMetadata {
 			ty: ir.ty,
 			version: ir.version,
-			signed_extensions: ir.signed_extensions.into_iter().map(Into::into).collect(),
+			signed_extensions: ir.extensions.into_iter().map(Into::into).collect(),
 		}
 	}
 }
diff --git a/substrate/primitives/metadata-ir/src/v15.rs b/substrate/primitives/metadata-ir/src/v15.rs
index a942eb73223..dc5ce1c88fd 100644
--- a/substrate/primitives/metadata-ir/src/v15.rs
+++ b/substrate/primitives/metadata-ir/src/v15.rs
@@ -21,7 +21,7 @@ use crate::OuterEnumsIR;
 
 use super::types::{
 	ExtrinsicMetadataIR, MetadataIR, PalletMetadataIR, RuntimeApiMetadataIR,
-	RuntimeApiMethodMetadataIR, RuntimeApiMethodParamMetadataIR, SignedExtensionMetadataIR,
+	RuntimeApiMethodMetadataIR, RuntimeApiMethodParamMetadataIR, TransactionExtensionMetadataIR,
 };
 
 use frame_metadata::v15::{
@@ -87,8 +87,8 @@ impl From<PalletMetadataIR> for PalletMetadata {
 	}
 }
 
-impl From<SignedExtensionMetadataIR> for SignedExtensionMetadata {
-	fn from(ir: SignedExtensionMetadataIR) -> Self {
+impl From<TransactionExtensionMetadataIR> for SignedExtensionMetadata {
+	fn from(ir: TransactionExtensionMetadataIR) -> Self {
 		SignedExtensionMetadata {
 			identifier: ir.identifier,
 			ty: ir.ty,
@@ -105,7 +105,7 @@ impl From<ExtrinsicMetadataIR> for ExtrinsicMetadata {
 			call_ty: ir.call_ty,
 			signature_ty: ir.signature_ty,
 			extra_ty: ir.extra_ty,
-			signed_extensions: ir.signed_extensions.into_iter().map(Into::into).collect(),
+			signed_extensions: ir.extensions.into_iter().map(Into::into).collect(),
 		}
 	}
 }
diff --git a/substrate/primitives/runtime/Cargo.toml b/substrate/primitives/runtime/Cargo.toml
index cacfc059722..758cd8944fd 100644
--- a/substrate/primitives/runtime/Cargo.toml
+++ b/substrate/primitives/runtime/Cargo.toml
@@ -17,6 +17,7 @@ workspace = true
 targets = ["x86_64-unknown-linux-gnu"]
 
 [dependencies]
+tuplex = { version = "0.1.2", default-features = false }
 codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] }
 either = { version = "1.5", default-features = false }
 hash256-std-hasher = { version = "0.15.2", default-features = false }
@@ -67,6 +68,7 @@ std = [
 	"sp-std/std",
 	"sp-tracing/std",
 	"sp-weights/std",
+	"tuplex/std",
 ]
 
 # Serde support without relying on std features.
diff --git a/substrate/primitives/runtime/src/generic/checked_extrinsic.rs b/substrate/primitives/runtime/src/generic/checked_extrinsic.rs
index 44325920bee..e28c8fe424a 100644
--- a/substrate/primitives/runtime/src/generic/checked_extrinsic.rs
+++ b/substrate/primitives/runtime/src/generic/checked_extrinsic.rs
@@ -18,81 +18,115 @@
 //! Generic implementation of an extrinsic that has passed the verification
 //! stage.
 
+use codec::Encode;
+
 use crate::{
 	traits::{
-		self, DispatchInfoOf, Dispatchable, MaybeDisplay, Member, PostDispatchInfoOf,
-		SignedExtension, ValidateUnsigned,
+		self, transaction_extension::TransactionExtension, DispatchInfoOf, DispatchTransaction,
+		Dispatchable, MaybeDisplay, Member, PostDispatchInfoOf, ValidateUnsigned,
 	},
 	transaction_validity::{TransactionSource, TransactionValidity},
 };
 
+/// The kind of extrinsic this is, including any fields required of that kind. This is basically
+/// the full extrinsic except the `Call`.
+#[derive(PartialEq, Eq, Clone, sp_core::RuntimeDebug)]
+pub enum ExtrinsicFormat<AccountId, Extension> {
+	/// Extrinsic is bare; it must pass either the bare forms of `TransactionExtension` or
+	/// `ValidateUnsigned`, both deprecated, or alternatively a `ProvideInherent`.
+	Bare,
+	/// Extrinsic has a default `Origin` of `Signed(AccountId)` and must pass all
+	/// `TransactionExtension`s regular checks and includes all extension data.
+	Signed(AccountId, Extension),
+	/// Extrinsic has a default `Origin` of `None` and must pass all `TransactionExtension`s.
+	/// regular checks and includes all extension data.
+	General(Extension),
+}
+
+// TODO: Rename ValidateUnsigned to ValidateInherent
+// TODO: Consider changing ValidateInherent API to avoid need for duplicating validate
+//   code into pre_dispatch (rename that to `prepare`).
+// TODO: New extrinsic type corresponding to `ExtrinsicFormat::General`, which is
+//   unsigned but includes extension data.
+// TODO: Move usage of `signed` to `format`:
+// - Inherent instead of None.
+// - Signed(id, extension) instead of Some((id, extra)).
+// - Introduce General(extension) for one without a signature.
+
 /// Definition of something that the external world might want to say; its existence implies that it
 /// has been checked and is good, particularly with regards to the signature.
 ///
 /// This is typically passed into [`traits::Applyable::apply`], which should execute
 /// [`CheckedExtrinsic::function`], alongside all other bits and bobs.
 #[derive(PartialEq, Eq, Clone, sp_core::RuntimeDebug)]
-pub struct CheckedExtrinsic<AccountId, Call, Extra> {
+pub struct CheckedExtrinsic<AccountId, Call, Extension> {
 	/// Who this purports to be from and the number of extrinsics have come before
 	/// from the same signer, if anyone (note this is not a signature).
-	pub signed: Option<(AccountId, Extra)>,
+	pub format: ExtrinsicFormat<AccountId, Extension>,
 
 	/// The function that should be called.
 	pub function: Call,
 }
 
-impl<AccountId, Call, Extra, RuntimeOrigin> traits::Applyable
-	for CheckedExtrinsic<AccountId, Call, Extra>
+impl<AccountId, Call, Extension, RuntimeOrigin> traits::Applyable
+	for CheckedExtrinsic<AccountId, Call, Extension>
 where
 	AccountId: Member + MaybeDisplay,
-	Call: Member + Dispatchable<RuntimeOrigin = RuntimeOrigin>,
-	Extra: SignedExtension<AccountId = AccountId, Call = Call>,
+	Call: Member + Dispatchable<RuntimeOrigin = RuntimeOrigin> + Encode,
+	Extension: TransactionExtension<Call, ()>,
 	RuntimeOrigin: From<Option<AccountId>>,
 {
 	type Call = Call;
 
-	fn validate<U: ValidateUnsigned<Call = Self::Call>>(
+	fn validate<I: ValidateUnsigned<Call = Self::Call>>(
 		&self,
-		// TODO [#5006;ToDr] should source be passed to `SignedExtension`s?
-		// Perhaps a change for 2.0 to avoid breaking too much APIs?
 		source: TransactionSource,
 		info: &DispatchInfoOf<Self::Call>,
 		len: usize,
 	) -> TransactionValidity {
-		if let Some((ref id, ref extra)) = self.signed {
-			Extra::validate(extra, id, &self.function, info, len)
-		} else {
-			let valid = Extra::validate_unsigned(&self.function, info, len)?;
-			let unsigned_validation = U::validate_unsigned(source, &self.function)?;
-			Ok(valid.combine_with(unsigned_validation))
+		match self.format {
+			ExtrinsicFormat::Bare => {
+				let inherent_validation = I::validate_unsigned(source, &self.function)?;
+				#[allow(deprecated)]
+				let legacy_validation = Extension::validate_bare_compat(&self.function, info, len)?;
+				Ok(legacy_validation.combine_with(inherent_validation))
+			},
+			ExtrinsicFormat::Signed(ref signer, ref extension) => {
+				let origin = Some(signer.clone()).into();
+				extension.validate_only(origin, &self.function, info, len).map(|x| x.0)
+			},
+			ExtrinsicFormat::General(ref extension) =>
+				extension.validate_only(None.into(), &self.function, info, len).map(|x| x.0),
 		}
 	}
 
-	fn apply<U: ValidateUnsigned<Call = Self::Call>>(
+	fn apply<I: ValidateUnsigned<Call = Self::Call>>(
 		self,
 		info: &DispatchInfoOf<Self::Call>,
 		len: usize,
 	) -> crate::ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Self::Call>> {
-		let (maybe_who, maybe_pre) = if let Some((id, extra)) = self.signed {
-			let pre = Extra::pre_dispatch(extra, &id, &self.function, info, len)?;
-			(Some(id), Some(pre))
-		} else {
-			Extra::pre_dispatch_unsigned(&self.function, info, len)?;
-			U::pre_dispatch(&self.function)?;
-			(None, None)
-		};
-		let res = self.function.dispatch(RuntimeOrigin::from(maybe_who));
-		let post_info = match res {
-			Ok(info) => info,
-			Err(err) => err.post_info,
-		};
-		Extra::post_dispatch(
-			maybe_pre,
-			info,
-			&post_info,
-			len,
-			&res.map(|_| ()).map_err(|e| e.error),
-		)?;
-		Ok(res)
+		match self.format {
+			ExtrinsicFormat::Bare => {
+				I::pre_dispatch(&self.function)?;
+				// TODO: Remove below once `pre_dispatch_unsigned` is removed from `LegacyExtension`
+				//   or `LegacyExtension` is removed.
+				#[allow(deprecated)]
+				Extension::validate_bare_compat(&self.function, info, len)?;
+				#[allow(deprecated)]
+				Extension::pre_dispatch_bare_compat(&self.function, info, len)?;
+				let res = self.function.dispatch(None.into());
+				let post_info = res.unwrap_or_else(|err| err.post_info);
+				let pd_res = res.map(|_| ()).map_err(|e| e.error);
+				// TODO: Remove below once `pre_dispatch_unsigned` is removed from `LegacyExtension`
+				//   or `LegacyExtension` is removed.
+				#[allow(deprecated)]
+				Extension::post_dispatch_bare_compat(info, &post_info, len, &pd_res)?;
+				Ok(res)
+			},
+			ExtrinsicFormat::Signed(signer, extension) =>
+				extension.dispatch_transaction(Some(signer).into(), self.function, info, len),
+			ExtrinsicFormat::General(extension) =>
+				extension.dispatch_transaction(None.into(), self.function, info, len),
+		}
 	}
 }
diff --git a/substrate/primitives/runtime/src/generic/mod.rs b/substrate/primitives/runtime/src/generic/mod.rs
index 3687f7cdb3b..5713c166b04 100644
--- a/substrate/primitives/runtime/src/generic/mod.rs
+++ b/substrate/primitives/runtime/src/generic/mod.rs
@@ -29,9 +29,9 @@ mod unchecked_extrinsic;
 
 pub use self::{
 	block::{Block, BlockId, SignedBlock},
-	checked_extrinsic::CheckedExtrinsic,
+	checked_extrinsic::{CheckedExtrinsic, ExtrinsicFormat},
 	digest::{Digest, DigestItem, DigestItemRef, OpaqueDigestItemId},
 	era::{Era, Phase},
 	header::Header,
-	unchecked_extrinsic::{SignedPayload, UncheckedExtrinsic},
+	unchecked_extrinsic::{Preamble, SignedPayload, UncheckedExtrinsic},
 };
diff --git a/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs b/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs
index 5b54caf597b..44dfda13d94 100644
--- a/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs
+++ b/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs
@@ -18,10 +18,11 @@
 //! Generic implementation of an unchecked (pre-verification) extrinsic.
 
 use crate::{
-	generic::CheckedExtrinsic,
+	generic::{CheckedExtrinsic, ExtrinsicFormat},
 	traits::{
-		self, Checkable, Extrinsic, ExtrinsicMetadata, IdentifyAccount, MaybeDisplay, Member,
-		SignaturePayload, SignedExtension,
+		self, transaction_extension::TransactionExtensionBase, Checkable, Dispatchable, Extrinsic,
+		ExtrinsicMetadata, IdentifyAccount, MaybeDisplay, Member, SignaturePayload,
+		TransactionExtension,
 	},
 	transaction_validity::{InvalidTransaction, TransactionValidityError},
 	OpaqueExtrinsic,
@@ -40,8 +41,60 @@ use sp_std::{fmt, prelude::*};
 /// the decoding fails.
 const EXTRINSIC_FORMAT_VERSION: u8 = 4;
 
-/// The `SingaturePayload` of `UncheckedExtrinsic`.
-type UncheckedSignaturePayload<Address, Signature, Extra> = (Address, Signature, Extra);
+/// The `SignaturePayload` of `UncheckedExtrinsic`.
+type UncheckedSignaturePayload<Address, Signature, Extension> = (Address, Signature, Extension);
+
+impl<Address: TypeInfo, Signature: TypeInfo, Extension: TypeInfo> SignaturePayload
+	for UncheckedSignaturePayload<Address, Signature, Extension>
+{
+	type SignatureAddress = Address;
+	type Signature = Signature;
+	type SignatureExtra = Extension;
+}
+
+/// A "header" for extrinsics leading up to the call itself. Determines the type of extrinsic and
+/// holds any necessary specialized data.
+#[derive(Eq, PartialEq, Clone, Encode, Decode)]
+pub enum Preamble<Address, Signature, Extension> {
+	/// An extrinsic without a signature or any extension. This means it's either an inherent or
+	/// an old-school "Unsigned" (we don't use that terminology any more since it's confusable with
+	/// the general transaction which is without a signature but does have an extension).
+	///
+	/// NOTE: In the future, once we remove `ValidateUnsigned`, this will only serve Inherent
+	/// extrinsics and thus can be renamed to `Inherent`.
+	#[codec(index = 0b00000100)]
+	Bare,
+	/// An old-school transaction extrinsic which includes a signature of some hard-coded crypto.
+	#[codec(index = 0b10000100)]
+	Signed(Address, Signature, Extension),
+	/// A new-school transaction extrinsic which does not include a signature.
+	#[codec(index = 0b01000100)]
+	General(Extension),
+}
+
+impl<Address, Signature, Extension> Preamble<Address, Signature, Extension> {
+	/// Returns `Some` if this is a signed extrinsic, together with the relevant inner fields.
+	pub fn to_signed(self) -> Option<(Address, Signature, Extension)> {
+		match self {
+			Self::Signed(a, s, e) => Some((a, s, e)),
+			_ => None,
+		}
+	}
+}
+
+impl<Address, Signature, Extension> fmt::Debug for Preamble<Address, Signature, Extension>
+where
+	Address: fmt::Debug,
+	Extension: fmt::Debug,
+{
+	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+		match self {
+			Self::Bare => write!(f, "Bare"),
+			Self::Signed(address, _, tx_ext) => write!(f, "Signed({:?}, {:?})", address, tx_ext),
+			Self::General(tx_ext) => write!(f, "General({:?})", tx_ext),
+		}
+	}
+}
 
 /// An extrinsic right from the external world. This is unchecked and so can contain a signature.
 ///
@@ -65,41 +118,28 @@ type UncheckedSignaturePayload<Address, Signature, Extra> = (Address, Signature,
 /// This can be checked using [`Checkable`], yielding a [`CheckedExtrinsic`], which is the
 /// counterpart of this type after its signature (and other non-negotiable validity checks) have
 /// passed.
-#[derive(PartialEq, Eq, Clone)]
-pub struct UncheckedExtrinsic<Address, Call, Signature, Extra>
-where
-	Extra: SignedExtension,
-{
-	/// The signature, address, number of extrinsics have come before from the same signer and an
-	/// era describing the longevity of this transaction, if this is a signed extrinsic.
-	///
-	/// `None` if it is unsigned or an inherent.
-	pub signature: Option<UncheckedSignaturePayload<Address, Signature, Extra>>,
+#[derive(PartialEq, Eq, Clone, Debug)]
+pub struct UncheckedExtrinsic<Address, Call, Signature, Extension> {
+	/// Information regarding the type of extrinsic this is (inherent or transaction) as well as
+	/// associated extension (`Extension`) data if it's a transaction and a possible signature.
+	pub preamble: Preamble<Address, Signature, Extension>,
 	/// The function that should be called.
 	pub function: Call,
 }
 
-impl<Address: TypeInfo, Signature: TypeInfo, Extra: TypeInfo> SignaturePayload
-	for UncheckedSignaturePayload<Address, Signature, Extra>
-{
-	type SignatureAddress = Address;
-	type Signature = Signature;
-	type SignatureExtra = Extra;
-}
-
 /// Manual [`TypeInfo`] implementation because of custom encoding. The data is a valid encoded
 /// `Vec<u8>`, but requires some logic to extract the signature and payload.
 ///
 /// See [`UncheckedExtrinsic::encode`] and [`UncheckedExtrinsic::decode`].
-impl<Address, Call, Signature, Extra> TypeInfo
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address, Call, Signature, Extension> TypeInfo
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 where
 	Address: StaticTypeInfo,
 	Call: StaticTypeInfo,
 	Signature: StaticTypeInfo,
-	Extra: SignedExtension + StaticTypeInfo,
+	Extension: StaticTypeInfo,
 {
-	type Identity = UncheckedExtrinsic<Address, Call, Signature, Extra>;
+	type Identity = UncheckedExtrinsic<Address, Call, Signature, Extension>;
 
 	fn type_info() -> Type {
 		Type::builder()
@@ -111,7 +151,7 @@ where
 				TypeParameter::new("Address", Some(meta_type::<Address>())),
 				TypeParameter::new("Call", Some(meta_type::<Call>())),
 				TypeParameter::new("Signature", Some(meta_type::<Signature>())),
-				TypeParameter::new("Extra", Some(meta_type::<Extra>())),
+				TypeParameter::new("Extra", Some(meta_type::<Extension>())),
 			])
 			.docs(&["UncheckedExtrinsic raw bytes, requires custom decoding routine"])
 			// Because of the custom encoding, we can only accurately describe the encoding as an
@@ -121,66 +161,113 @@ where
 	}
 }
 
-impl<Address, Call, Signature, Extra: SignedExtension>
-	UncheckedExtrinsic<Address, Call, Signature, Extra>
-{
-	/// New instance of a signed extrinsic aka "transaction".
-	pub fn new_signed(function: Call, signed: Address, signature: Signature, extra: Extra) -> Self {
-		Self { signature: Some((signed, signature, extra)), function }
+impl<Address, Call, Signature, Extension> UncheckedExtrinsic<Address, Call, Signature, Extension> {
+	/// New instance of a bare (ne unsigned) extrinsic. This could be used for an inherent or an
+	/// old-school "unsigned transaction" (which are new being deprecated in favour of general
+	/// transactions).
+	#[deprecated = "Use new_bare instead"]
+	pub fn new_unsigned(function: Call) -> Self {
+		Self::new_bare(function)
 	}
 
-	/// New instance of an unsigned extrinsic aka "inherent".
-	pub fn new_unsigned(function: Call) -> Self {
-		Self { signature: None, function }
+	/// Returns `true` if this extrinsic instance is an inherent, `false`` otherwise.
+	pub fn is_inherent(&self) -> bool {
+		matches!(self.preamble, Preamble::Bare)
+	}
+
+	/// Returns `true` if this extrinsic instance is an old-school signed transaction, `false`
+	/// otherwise.
+	pub fn is_signed(&self) -> bool {
+		matches!(self.preamble, Preamble::Signed(..))
+	}
+
+	/// Create an `UncheckedExtrinsic` from a `Preamble` and the actual `Call`.
+	pub fn from_parts(function: Call, preamble: Preamble<Address, Signature, Extension>) -> Self {
+		Self { preamble, function }
+	}
+
+	/// New instance of a bare (ne unsigned) extrinsic.
+	pub fn new_bare(function: Call) -> Self {
+		Self { preamble: Preamble::Bare, function }
+	}
+
+	/// New instance of an old-school signed transaction.
+	pub fn new_signed(
+		function: Call,
+		signed: Address,
+		signature: Signature,
+		tx_ext: Extension,
+	) -> Self {
+		Self { preamble: Preamble::Signed(signed, signature, tx_ext), function }
+	}
+
+	/// New instance of an new-school unsigned transaction.
+	pub fn new_transaction(function: Call, tx_ext: Extension) -> Self {
+		Self { preamble: Preamble::General(tx_ext), function }
 	}
 }
 
-impl<Address: TypeInfo, Call: TypeInfo, Signature: TypeInfo, Extra: SignedExtension + TypeInfo>
-	Extrinsic for UncheckedExtrinsic<Address, Call, Signature, Extra>
+// TODO: We can get rid of this trait and just use UncheckedExtrinsic directly.
+
+impl<Address: TypeInfo, Call: TypeInfo, Signature: TypeInfo, Extension: TypeInfo> Extrinsic
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 {
 	type Call = Call;
 
-	type SignaturePayload = UncheckedSignaturePayload<Address, Signature, Extra>;
+	type SignaturePayload = UncheckedSignaturePayload<Address, Signature, Extension>;
+
+	fn is_bare(&self) -> bool {
+		matches!(self.preamble, Preamble::Bare)
+	}
 
 	fn is_signed(&self) -> Option<bool> {
-		Some(self.signature.is_some())
+		Some(matches!(self.preamble, Preamble::Signed(..)))
 	}
 
 	fn new(function: Call, signed_data: Option<Self::SignaturePayload>) -> Option<Self> {
 		Some(if let Some((address, signature, extra)) = signed_data {
 			Self::new_signed(function, address, signature, extra)
 		} else {
-			Self::new_unsigned(function)
+			Self::new_bare(function)
 		})
 	}
+
+	fn new_inherent(function: Call) -> Self {
+		Self::new_bare(function)
+	}
 }
 
-impl<LookupSource, AccountId, Call, Signature, Extra, Lookup> Checkable<Lookup>
-	for UncheckedExtrinsic<LookupSource, Call, Signature, Extra>
+impl<LookupSource, AccountId, Call, Signature, Extension, Lookup> Checkable<Lookup>
+	for UncheckedExtrinsic<LookupSource, Call, Signature, Extension>
 where
 	LookupSource: Member + MaybeDisplay,
-	Call: Encode + Member,
+	Call: Encode + Member + Dispatchable,
 	Signature: Member + traits::Verify,
 	<Signature as traits::Verify>::Signer: IdentifyAccount<AccountId = AccountId>,
-	Extra: SignedExtension<AccountId = AccountId>,
+	Extension: Encode + TransactionExtension<Call, ()>,
 	AccountId: Member + MaybeDisplay,
 	Lookup: traits::Lookup<Source = LookupSource, Target = AccountId>,
 {
-	type Checked = CheckedExtrinsic<AccountId, Call, Extra>;
+	type Checked = CheckedExtrinsic<AccountId, Call, Extension>;
 
 	fn check(self, lookup: &Lookup) -> Result<Self::Checked, TransactionValidityError> {
-		Ok(match self.signature {
-			Some((signed, signature, extra)) => {
+		Ok(match self.preamble {
+			Preamble::Signed(signed, signature, tx_ext) => {
 				let signed = lookup.lookup(signed)?;
-				let raw_payload = SignedPayload::new(self.function, extra)?;
+				// CHECK! Should this not contain implicit?
+				let raw_payload = SignedPayload::new(self.function, tx_ext)?;
 				if !raw_payload.using_encoded(|payload| signature.verify(payload, &signed)) {
 					return Err(InvalidTransaction::BadProof.into())
 				}
-
-				let (function, extra, _) = raw_payload.deconstruct();
-				CheckedExtrinsic { signed: Some((signed, extra)), function }
+				let (function, tx_ext, _) = raw_payload.deconstruct();
+				CheckedExtrinsic { format: ExtrinsicFormat::Signed(signed, tx_ext), function }
+			},
+			Preamble::General(tx_ext) => CheckedExtrinsic {
+				format: ExtrinsicFormat::General(tx_ext),
+				function: self.function,
 			},
-			None => CheckedExtrinsic { signed: None, function: self.function },
+			Preamble::Bare =>
+				CheckedExtrinsic { format: ExtrinsicFormat::Bare, function: self.function },
 		})
 	}
 
@@ -189,91 +276,38 @@ where
 		self,
 		lookup: &Lookup,
 	) -> Result<Self::Checked, TransactionValidityError> {
-		Ok(match self.signature {
-			Some((signed, _, extra)) => {
+		Ok(match self.preamble {
+			Preamble::Signed(signed, _, extra) => {
 				let signed = lookup.lookup(signed)?;
-				let raw_payload = SignedPayload::new(self.function, extra)?;
-				let (function, extra, _) = raw_payload.deconstruct();
-				CheckedExtrinsic { signed: Some((signed, extra)), function }
+				CheckedExtrinsic {
+					format: ExtrinsicFormat::Signed(signed, extra),
+					function: self.function,
+				}
 			},
-			None => CheckedExtrinsic { signed: None, function: self.function },
+			Preamble::General(extra) => CheckedExtrinsic {
+				format: ExtrinsicFormat::General(extra),
+				function: self.function,
+			},
+			Preamble::Bare =>
+				CheckedExtrinsic { format: ExtrinsicFormat::Bare, function: self.function },
 		})
 	}
 }
 
-impl<Address, Call, Signature, Extra> ExtrinsicMetadata
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
-where
-	Extra: SignedExtension,
+impl<Address, Call: Dispatchable, Signature, Extension: TransactionExtension<Call, ()>>
+	ExtrinsicMetadata for UncheckedExtrinsic<Address, Call, Signature, Extension>
 {
 	const VERSION: u8 = EXTRINSIC_FORMAT_VERSION;
-	type SignedExtensions = Extra;
-}
-
-/// A payload that has been signed for an unchecked extrinsics.
-///
-/// Note that the payload that we sign to produce unchecked extrinsic signature
-/// is going to be different than the `SignaturePayload` - so the thing the extrinsic
-/// actually contains.
-pub struct SignedPayload<Call, Extra: SignedExtension>((Call, Extra, Extra::AdditionalSigned));
-
-impl<Call, Extra> SignedPayload<Call, Extra>
-where
-	Call: Encode,
-	Extra: SignedExtension,
-{
-	/// Create new `SignedPayload`.
-	///
-	/// This function may fail if `additional_signed` of `Extra` is not available.
-	pub fn new(call: Call, extra: Extra) -> Result<Self, TransactionValidityError> {
-		let additional_signed = extra.additional_signed()?;
-		let raw_payload = (call, extra, additional_signed);
-		Ok(Self(raw_payload))
-	}
-
-	/// Create new `SignedPayload` from raw components.
-	pub fn from_raw(call: Call, extra: Extra, additional_signed: Extra::AdditionalSigned) -> Self {
-		Self((call, extra, additional_signed))
-	}
-
-	/// Deconstruct the payload into it's components.
-	pub fn deconstruct(self) -> (Call, Extra, Extra::AdditionalSigned) {
-		self.0
-	}
+	type Extra = Extension;
 }
 
-impl<Call, Extra> Encode for SignedPayload<Call, Extra>
-where
-	Call: Encode,
-	Extra: SignedExtension,
-{
-	/// Get an encoded version of this payload.
-	///
-	/// Payloads longer than 256 bytes are going to be `blake2_256`-hashed.
-	fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R {
-		self.0.using_encoded(|payload| {
-			if payload.len() > 256 {
-				f(&blake2_256(payload)[..])
-			} else {
-				f(payload)
-			}
-		})
-	}
-}
-
-impl<Call, Extra> EncodeLike for SignedPayload<Call, Extra>
-where
-	Call: Encode,
-	Extra: SignedExtension,
-{
-}
-
-impl<Address, Call, Signature, Extra> Decode for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address, Call, Signature, Extension> Decode
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 where
 	Address: Decode,
 	Signature: Decode,
 	Call: Decode,
-	Extra: SignedExtension,
+	Extension: Decode,
 {
 	fn decode<I: Input>(input: &mut I) -> Result<Self, Error> {
 		// This is a little more complicated than usual since the binary format must be compatible
@@ -282,15 +316,7 @@ where
 		let expected_length: Compact<u32> = Decode::decode(input)?;
 		let before_length = input.remaining_len()?;
 
-		let version = input.read_byte()?;
-
-		let is_signed = version & 0b1000_0000 != 0;
-		let version = version & 0b0111_1111;
-		if version != EXTRINSIC_FORMAT_VERSION {
-			return Err("Invalid transaction version".into())
-		}
-
-		let signature = is_signed.then(|| Decode::decode(input)).transpose()?;
+		let preamble = Decode::decode(input)?;
 		let function = Decode::decode(input)?;
 
 		if let Some((before_length, after_length)) =
@@ -303,31 +329,20 @@ where
 			}
 		}
 
-		Ok(Self { signature, function })
+		Ok(Self { preamble, function })
 	}
 }
 
 #[docify::export(unchecked_extrinsic_encode_impl)]
-impl<Address, Call, Signature, Extra> Encode for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address, Call, Signature, Extension> Encode
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 where
-	Address: Encode,
-	Signature: Encode,
+	Preamble<Address, Signature, Extension>: Encode,
 	Call: Encode,
-	Extra: SignedExtension,
+	Extension: Encode,
 {
 	fn encode(&self) -> Vec<u8> {
-		let mut tmp = Vec::with_capacity(sp_std::mem::size_of::<Self>());
-
-		// 1 byte version id.
-		match self.signature.as_ref() {
-			Some(s) => {
-				tmp.push(EXTRINSIC_FORMAT_VERSION | 0b1000_0000);
-				s.encode_to(&mut tmp);
-			},
-			None => {
-				tmp.push(EXTRINSIC_FORMAT_VERSION & 0b0111_1111);
-			},
-		}
+		let mut tmp = self.preamble.encode();
 		self.function.encode_to(&mut tmp);
 
 		let compact_len = codec::Compact::<u32>(tmp.len() as u32);
@@ -342,19 +357,19 @@ where
 	}
 }
 
-impl<Address, Call, Signature, Extra> EncodeLike
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address, Call, Signature, Extension> EncodeLike
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 where
 	Address: Encode,
 	Signature: Encode,
-	Call: Encode,
-	Extra: SignedExtension,
+	Call: Encode + Dispatchable,
+	Extension: TransactionExtension<Call, ()>,
 {
 }
 
 #[cfg(feature = "serde")]
-impl<Address: Encode, Signature: Encode, Call: Encode, Extra: SignedExtension> serde::Serialize
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<Address: Encode, Signature: Encode, Call: Encode, Extension: Encode> serde::Serialize
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 {
 	fn serialize<S>(&self, seq: S) -> Result<S::Ok, S::Error>
 	where
@@ -365,45 +380,88 @@ impl<Address: Encode, Signature: Encode, Call: Encode, Extra: SignedExtension> s
 }
 
 #[cfg(feature = "serde")]
-impl<'a, Address: Decode, Signature: Decode, Call: Decode, Extra: SignedExtension>
-	serde::Deserialize<'a> for UncheckedExtrinsic<Address, Call, Signature, Extra>
+impl<'a, Address: Decode, Signature: Decode, Call: Decode, Extension: Decode> serde::Deserialize<'a>
+	for UncheckedExtrinsic<Address, Call, Signature, Extension>
 {
 	fn deserialize<D>(de: D) -> Result<Self, D::Error>
 	where
 		D: serde::Deserializer<'a>,
 	{
 		let r = sp_core::bytes::deserialize(de)?;
-		Decode::decode(&mut &r[..])
+		Self::decode(&mut &r[..])
 			.map_err(|e| serde::de::Error::custom(format!("Decode error: {}", e)))
 	}
 }
 
-impl<Address, Call, Signature, Extra> fmt::Debug
-	for UncheckedExtrinsic<Address, Call, Signature, Extra>
+/// A payload that has been signed for an unchecked extrinsics.
+///
+/// Note that the payload that we sign to produce unchecked extrinsic signature
+/// is going to be different than the `SignaturePayload` - so the thing the extrinsic
+/// actually contains.
+pub struct SignedPayload<Call: Dispatchable, Extension: TransactionExtensionBase>(
+	(Call, Extension, Extension::Implicit),
+);
+
+impl<Call, Extension> SignedPayload<Call, Extension>
 where
-	Address: fmt::Debug,
-	Call: fmt::Debug,
-	Extra: SignedExtension,
+	Call: Encode + Dispatchable,
+	Extension: TransactionExtensionBase,
 {
-	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-		write!(
-			f,
-			"UncheckedExtrinsic({:?}, {:?})",
-			self.signature.as_ref().map(|x| (&x.0, &x.2)),
-			self.function,
-		)
+	/// Create new `SignedPayload`.
+	///
+	/// This function may fail if `implicit` of `Extension` is not available.
+	pub fn new(call: Call, tx_ext: Extension) -> Result<Self, TransactionValidityError> {
+		let implicit = Extension::implicit(&tx_ext)?;
+		let raw_payload = (call, tx_ext, implicit);
+		Ok(Self(raw_payload))
+	}
+
+	/// Create new `SignedPayload` from raw components.
+	pub fn from_raw(call: Call, tx_ext: Extension, implicit: Extension::Implicit) -> Self {
+		Self((call, tx_ext, implicit))
+	}
+
+	/// Deconstruct the payload into it's components.
+	pub fn deconstruct(self) -> (Call, Extension, Extension::Implicit) {
+		self.0
 	}
 }
 
-impl<Address, Call, Signature, Extra> From<UncheckedExtrinsic<Address, Call, Signature, Extra>>
-	for OpaqueExtrinsic
+impl<Call, Extension> Encode for SignedPayload<Call, Extension>
+where
+	Call: Encode + Dispatchable,
+	Extension: TransactionExtensionBase,
+{
+	/// Get an encoded version of this payload.
+	///
+	/// Payloads longer than 256 bytes are going to be `blake2_256`-hashed.
+	fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R {
+		self.0.using_encoded(|payload| {
+			if payload.len() > 256 {
+				f(&blake2_256(payload)[..])
+			} else {
+				f(payload)
+			}
+		})
+	}
+}
+
+impl<Call, Extension> EncodeLike for SignedPayload<Call, Extension>
+where
+	Call: Encode + Dispatchable,
+	Extension: TransactionExtensionBase,
+{
+}
+
+impl<Address, Call, Signature, Extension>
+	From<UncheckedExtrinsic<Address, Call, Signature, Extension>> for OpaqueExtrinsic
 where
 	Address: Encode,
 	Signature: Encode,
 	Call: Encode,
-	Extra: SignedExtension,
+	Extension: Encode,
 {
-	fn from(extrinsic: UncheckedExtrinsic<Address, Call, Signature, Extra>) -> Self {
+	fn from(extrinsic: UncheckedExtrinsic<Address, Call, Signature, Extension>) -> Self {
 		Self::from_bytes(extrinsic.encode().as_slice()).expect(
 			"both OpaqueExtrinsic and UncheckedExtrinsic have encoding that is compatible with \
 				raw Vec<u8> encoding; qed",
@@ -411,60 +469,198 @@ where
 	}
 }
 
+#[cfg(test)]
+mod legacy {
+	use codec::{Compact, Decode, Encode, EncodeLike, Error, Input};
+	use scale_info::{
+		build::Fields, meta_type, Path, StaticTypeInfo, Type, TypeInfo, TypeParameter,
+	};
+
+	pub type OldUncheckedSignaturePayload<Address, Signature, Extra> = (Address, Signature, Extra);
+
+	#[derive(PartialEq, Eq, Clone, Debug)]
+	pub struct OldUncheckedExtrinsic<Address, Call, Signature, Extra> {
+		pub signature: Option<OldUncheckedSignaturePayload<Address, Signature, Extra>>,
+		pub function: Call,
+	}
+
+	impl<Address, Call, Signature, Extra> TypeInfo
+		for OldUncheckedExtrinsic<Address, Call, Signature, Extra>
+	where
+		Address: StaticTypeInfo,
+		Call: StaticTypeInfo,
+		Signature: StaticTypeInfo,
+		Extra: StaticTypeInfo,
+	{
+		type Identity = OldUncheckedExtrinsic<Address, Call, Signature, Extra>;
+
+		fn type_info() -> Type {
+			Type::builder()
+				.path(Path::new("UncheckedExtrinsic", module_path!()))
+				// Include the type parameter types, even though they are not used directly in any
+				// of the described fields. These type definitions can be used by downstream
+				// consumers to help construct the custom decoding from the opaque bytes (see
+				// below).
+				.type_params(vec![
+					TypeParameter::new("Address", Some(meta_type::<Address>())),
+					TypeParameter::new("Call", Some(meta_type::<Call>())),
+					TypeParameter::new("Signature", Some(meta_type::<Signature>())),
+					TypeParameter::new("Extra", Some(meta_type::<Extra>())),
+				])
+				.docs(&["OldUncheckedExtrinsic raw bytes, requires custom decoding routine"])
+				// Because of the custom encoding, we can only accurately describe the encoding as
+				// an opaque `Vec<u8>`. Downstream consumers will need to manually implement the
+				// codec to encode/decode the `signature` and `function` fields.
+				.composite(Fields::unnamed().field(|f| f.ty::<Vec<u8>>()))
+		}
+	}
+
+	impl<Address, Call, Signature, Extra> OldUncheckedExtrinsic<Address, Call, Signature, Extra> {
+		pub fn new_signed(
+			function: Call,
+			signed: Address,
+			signature: Signature,
+			extra: Extra,
+		) -> Self {
+			Self { signature: Some((signed, signature, extra)), function }
+		}
+
+		pub fn new_unsigned(function: Call) -> Self {
+			Self { signature: None, function }
+		}
+	}
+
+	impl<Address, Call, Signature, Extra> Decode
+		for OldUncheckedExtrinsic<Address, Call, Signature, Extra>
+	where
+		Address: Decode,
+		Signature: Decode,
+		Call: Decode,
+		Extra: Decode,
+	{
+		fn decode<I: Input>(input: &mut I) -> Result<Self, Error> {
+			// This is a little more complicated than usual since the binary format must be
+			// compatible with SCALE's generic `Vec<u8>` type. Basically this just means accepting
+			// that there will be a prefix of vector length.
+			let expected_length: Compact<u32> = Decode::decode(input)?;
+			let before_length = input.remaining_len()?;
+
+			let version = input.read_byte()?;
+
+			let is_signed = version & 0b1000_0000 != 0;
+			let version = version & 0b0111_1111;
+			if version != 4u8 {
+				return Err("Invalid transaction version".into())
+			}
+
+			let signature = is_signed.then(|| Decode::decode(input)).transpose()?;
+			let function = Decode::decode(input)?;
+
+			if let Some((before_length, after_length)) =
+				input.remaining_len()?.and_then(|a| before_length.map(|b| (b, a)))
+			{
+				let length = before_length.saturating_sub(after_length);
+
+				if length != expected_length.0 as usize {
+					return Err("Invalid length prefix".into())
+				}
+			}
+
+			Ok(Self { signature, function })
+		}
+	}
+
+	#[docify::export(unchecked_extrinsic_encode_impl)]
+	impl<Address, Call, Signature, Extra> Encode
+		for OldUncheckedExtrinsic<Address, Call, Signature, Extra>
+	where
+		Address: Encode,
+		Signature: Encode,
+		Call: Encode,
+		Extra: Encode,
+	{
+		fn encode(&self) -> Vec<u8> {
+			let mut tmp = Vec::with_capacity(sp_std::mem::size_of::<Self>());
+
+			// 1 byte version id.
+			match self.signature.as_ref() {
+				Some(s) => {
+					tmp.push(4u8 | 0b1000_0000);
+					s.encode_to(&mut tmp);
+				},
+				None => {
+					tmp.push(4u8 & 0b0111_1111);
+				},
+			}
+			self.function.encode_to(&mut tmp);
+
+			let compact_len = codec::Compact::<u32>(tmp.len() as u32);
+
+			// Allocate the output buffer with the correct length
+			let mut output = Vec::with_capacity(compact_len.size_hint() + tmp.len());
+
+			compact_len.encode_to(&mut output);
+			output.extend(tmp);
+
+			output
+		}
+	}
+
+	impl<Address, Call, Signature, Extra> EncodeLike
+		for OldUncheckedExtrinsic<Address, Call, Signature, Extra>
+	where
+		Address: Encode,
+		Signature: Encode,
+		Call: Encode,
+		Extra: Encode,
+	{
+	}
+}
+
 #[cfg(test)]
 mod tests {
-	use super::*;
+	use super::{legacy::OldUncheckedExtrinsic, *};
 	use crate::{
 		codec::{Decode, Encode},
+		impl_tx_ext_default,
 		testing::TestSignature as TestSig,
-		traits::{DispatchInfoOf, IdentityLookup, SignedExtension},
+		traits::{FakeDispatchable, IdentityLookup, TransactionExtension},
 	};
 	use sp_io::hashing::blake2_256;
 
 	type TestContext = IdentityLookup<u64>;
 	type TestAccountId = u64;
-	type TestCall = Vec<u8>;
+	type TestCall = FakeDispatchable<Vec<u8>>;
 
 	const TEST_ACCOUNT: TestAccountId = 0;
 
 	// NOTE: this is demonstration. One can simply use `()` for testing.
 	#[derive(Debug, Encode, Decode, Clone, Eq, PartialEq, Ord, PartialOrd, TypeInfo)]
-	struct TestExtra;
-	impl SignedExtension for TestExtra {
-		const IDENTIFIER: &'static str = "TestExtra";
-		type AccountId = u64;
-		type Call = ();
-		type AdditionalSigned = ();
+	struct DummyExtension;
+	impl TransactionExtensionBase for DummyExtension {
+		const IDENTIFIER: &'static str = "DummyExtension";
+		type Implicit = ();
+	}
+	impl<Context> TransactionExtension<TestCall, Context> for DummyExtension {
+		type Val = ();
 		type Pre = ();
-
-		fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-			Ok(())
-		}
-
-		fn pre_dispatch(
-			self,
-			who: &Self::AccountId,
-			call: &Self::Call,
-			info: &DispatchInfoOf<Self::Call>,
-			len: usize,
-		) -> Result<Self::Pre, TransactionValidityError> {
-			self.validate(who, call, info, len).map(|_| ())
-		}
+		impl_tx_ext_default!(TestCall; Context; validate prepare);
 	}
 
-	type Ex = UncheckedExtrinsic<TestAccountId, TestCall, TestSig, TestExtra>;
-	type CEx = CheckedExtrinsic<TestAccountId, TestCall, TestExtra>;
+	type Ex = UncheckedExtrinsic<TestAccountId, TestCall, TestSig, DummyExtension>;
+	type CEx = CheckedExtrinsic<TestAccountId, TestCall, DummyExtension>;
 
 	#[test]
 	fn unsigned_codec_should_work() {
-		let ux = Ex::new_unsigned(vec![0u8; 0]);
+		let call: TestCall = vec![0u8; 0].into();
+		let ux = Ex::new_inherent(call);
 		let encoded = ux.encode();
 		assert_eq!(Ex::decode(&mut &encoded[..]), Ok(ux));
 	}
 
 	#[test]
 	fn invalid_length_prefix_is_detected() {
-		let ux = Ex::new_unsigned(vec![0u8; 0]);
+		let ux = Ex::new_inherent(vec![0u8; 0].into());
 		let mut encoded = ux.encode();
 
 		let length = Compact::<u32>::decode(&mut &encoded[..]).unwrap();
@@ -473,13 +669,20 @@ mod tests {
 		assert_eq!(Ex::decode(&mut &encoded[..]), Err("Invalid length prefix".into()));
 	}
 
+	#[test]
+	fn transaction_codec_should_work() {
+		let ux = Ex::new_transaction(vec![0u8; 0].into(), DummyExtension);
+		let encoded = ux.encode();
+		assert_eq!(Ex::decode(&mut &encoded[..]), Ok(ux));
+	}
+
 	#[test]
 	fn signed_codec_should_work() {
 		let ux = Ex::new_signed(
-			vec![0u8; 0],
+			vec![0u8; 0].into(),
 			TEST_ACCOUNT,
-			TestSig(TEST_ACCOUNT, (vec![0u8; 0], TestExtra).encode()),
-			TestExtra,
+			TestSig(TEST_ACCOUNT, (vec![0u8; 0], DummyExtension).encode()),
+			DummyExtension,
 		);
 		let encoded = ux.encode();
 		assert_eq!(Ex::decode(&mut &encoded[..]), Ok(ux));
@@ -488,13 +691,13 @@ mod tests {
 	#[test]
 	fn large_signed_codec_should_work() {
 		let ux = Ex::new_signed(
-			vec![0u8; 0],
+			vec![0u8; 0].into(),
 			TEST_ACCOUNT,
 			TestSig(
 				TEST_ACCOUNT,
-				(vec![0u8; 257], TestExtra).using_encoded(blake2_256)[..].to_owned(),
+				(vec![0u8; 257], DummyExtension).using_encoded(blake2_256)[..].to_owned(),
 			),
-			TestExtra,
+			DummyExtension,
 		);
 		let encoded = ux.encode();
 		assert_eq!(Ex::decode(&mut &encoded[..]), Ok(ux));
@@ -502,44 +705,63 @@ mod tests {
 
 	#[test]
 	fn unsigned_check_should_work() {
-		let ux = Ex::new_unsigned(vec![0u8; 0]);
-		assert!(!ux.is_signed().unwrap_or(false));
-		assert!(<Ex as Checkable<TestContext>>::check(ux, &Default::default()).is_ok());
+		let ux = Ex::new_inherent(vec![0u8; 0].into());
+		assert!(ux.is_inherent());
+		assert_eq!(
+			<Ex as Checkable<TestContext>>::check(ux, &Default::default()),
+			Ok(CEx { format: ExtrinsicFormat::Bare, function: vec![0u8; 0].into() }),
+		);
 	}
 
 	#[test]
 	fn badly_signed_check_should_fail() {
 		let ux = Ex::new_signed(
-			vec![0u8; 0],
+			vec![0u8; 0].into(),
 			TEST_ACCOUNT,
-			TestSig(TEST_ACCOUNT, vec![0u8; 0]),
-			TestExtra,
+			TestSig(TEST_ACCOUNT, vec![0u8; 0].into()),
+			DummyExtension,
 		);
-		assert!(ux.is_signed().unwrap_or(false));
+		assert!(!ux.is_inherent());
 		assert_eq!(
 			<Ex as Checkable<TestContext>>::check(ux, &Default::default()),
 			Err(InvalidTransaction::BadProof.into()),
 		);
 	}
 
+	#[test]
+	fn transaction_check_should_work() {
+		let ux = Ex::new_transaction(vec![0u8; 0].into(), DummyExtension);
+		assert!(!ux.is_inherent());
+		assert_eq!(
+			<Ex as Checkable<TestContext>>::check(ux, &Default::default()),
+			Ok(CEx {
+				format: ExtrinsicFormat::General(DummyExtension),
+				function: vec![0u8; 0].into()
+			}),
+		);
+	}
+
 	#[test]
 	fn signed_check_should_work() {
 		let ux = Ex::new_signed(
-			vec![0u8; 0],
+			vec![0u8; 0].into(),
 			TEST_ACCOUNT,
-			TestSig(TEST_ACCOUNT, (vec![0u8; 0], TestExtra).encode()),
-			TestExtra,
+			TestSig(TEST_ACCOUNT, (vec![0u8; 0], DummyExtension).encode()),
+			DummyExtension,
 		);
-		assert!(ux.is_signed().unwrap_or(false));
+		assert!(!ux.is_inherent());
 		assert_eq!(
 			<Ex as Checkable<TestContext>>::check(ux, &Default::default()),
-			Ok(CEx { signed: Some((TEST_ACCOUNT, TestExtra)), function: vec![0u8; 0] }),
+			Ok(CEx {
+				format: ExtrinsicFormat::Signed(TEST_ACCOUNT, DummyExtension),
+				function: vec![0u8; 0].into()
+			}),
 		);
 	}
 
 	#[test]
 	fn encoding_matches_vec() {
-		let ex = Ex::new_unsigned(vec![0u8; 0]);
+		let ex = Ex::new_inherent(vec![0u8; 0].into());
 		let encoded = ex.encode();
 		let decoded = Ex::decode(&mut encoded.as_slice()).unwrap();
 		assert_eq!(decoded, ex);
@@ -549,7 +771,7 @@ mod tests {
 
 	#[test]
 	fn conversion_to_opaque() {
-		let ux = Ex::new_unsigned(vec![0u8; 0]);
+		let ux = Ex::new_inherent(vec![0u8; 0].into());
 		let encoded = ux.encode();
 		let opaque: OpaqueExtrinsic = ux.into();
 		let opaque_encoded = opaque.encode();
@@ -558,10 +780,62 @@ mod tests {
 
 	#[test]
 	fn large_bad_prefix_should_work() {
-		let encoded = Compact::<u32>::from(u32::MAX).encode();
-		assert_eq!(
-			Ex::decode(&mut &encoded[..]),
-			Err(Error::from("Not enough data to fill buffer"))
-		);
+		let encoded = (Compact::<u32>::from(u32::MAX), Preamble::<(), (), ()>::Bare).encode();
+		assert!(Ex::decode(&mut &encoded[..]).is_err());
+	}
+
+	#[test]
+	fn legacy_signed_encode_decode() {
+		let call: TestCall = vec![0u8; 0].into();
+		let signed = TEST_ACCOUNT;
+		let signature = TestSig(TEST_ACCOUNT, (vec![0u8; 0], DummyExtension).encode());
+		let extension = DummyExtension;
+
+		let new_ux = Ex::new_signed(call.clone(), signed, signature.clone(), extension.clone());
+		let old_ux =
+			OldUncheckedExtrinsic::<TestAccountId, TestCall, TestSig, DummyExtension>::new_signed(
+				call, signed, signature, extension,
+			);
+
+		let encoded_new_ux = new_ux.encode();
+		let encoded_old_ux = old_ux.encode();
+
+		assert_eq!(encoded_new_ux, encoded_old_ux);
+
+		let decoded_new_ux = Ex::decode(&mut &encoded_new_ux[..]).unwrap();
+		let decoded_old_ux =
+			OldUncheckedExtrinsic::<TestAccountId, TestCall, TestSig, DummyExtension>::decode(
+				&mut &encoded_old_ux[..],
+			)
+			.unwrap();
+
+		assert_eq!(new_ux, decoded_new_ux);
+		assert_eq!(old_ux, decoded_old_ux);
+	}
+
+	#[test]
+	fn legacy_unsigned_encode_decode() {
+		let call: TestCall = vec![0u8; 0].into();
+
+		let new_ux = Ex::new_bare(call.clone());
+		let old_ux =
+			OldUncheckedExtrinsic::<TestAccountId, TestCall, TestSig, DummyExtension>::new_unsigned(
+				call,
+			);
+
+		let encoded_new_ux = new_ux.encode();
+		let encoded_old_ux = old_ux.encode();
+
+		assert_eq!(encoded_new_ux, encoded_old_ux);
+
+		let decoded_new_ux = Ex::decode(&mut &encoded_new_ux[..]).unwrap();
+		let decoded_old_ux =
+			OldUncheckedExtrinsic::<TestAccountId, TestCall, TestSig, DummyExtension>::decode(
+				&mut &encoded_old_ux[..],
+			)
+			.unwrap();
+
+		assert_eq!(new_ux, decoded_new_ux);
+		assert_eq!(old_ux, decoded_old_ux);
 	}
 }
diff --git a/substrate/primitives/runtime/src/lib.rs b/substrate/primitives/runtime/src/lib.rs
index 44bf3c969e5..70605970b4e 100644
--- a/substrate/primitives/runtime/src/lib.rs
+++ b/substrate/primitives/runtime/src/lib.rs
@@ -125,6 +125,11 @@ pub use sp_arithmetic::{
 	Perquintill, Rational128, Rounding, UpperOf,
 };
 
+pub use transaction_validity::{
+	InvalidTransaction, TransactionSource, TransactionValidityError, UnknownTransaction,
+	ValidTransaction,
+};
+
 pub use either::Either;
 
 /// The number of bytes of the module-specific `error` field defined in [`ModuleError`].
@@ -443,21 +448,21 @@ impl std::fmt::Display for MultiSigner {
 impl Verify for MultiSignature {
 	type Signer = MultiSigner;
 	fn verify<L: Lazy<[u8]>>(&self, mut msg: L, signer: &AccountId32) -> bool {
-		match (self, signer) {
-			(Self::Ed25519(ref sig), who) => match ed25519::Public::from_slice(who.as_ref()) {
+		match self {
+			Self::Ed25519(ref sig) => match ed25519::Public::from_slice(signer.as_ref()) {
 				Ok(signer) => sig.verify(msg, &signer),
 				Err(()) => false,
 			},
-			(Self::Sr25519(ref sig), who) => match sr25519::Public::from_slice(who.as_ref()) {
+			Self::Sr25519(ref sig) => match sr25519::Public::from_slice(signer.as_ref()) {
 				Ok(signer) => sig.verify(msg, &signer),
 				Err(()) => false,
 			},
-			(Self::Ecdsa(ref sig), who) => {
+			Self::Ecdsa(ref sig) => {
 				let m = sp_io::hashing::blake2_256(msg.get());
 				match sp_io::crypto::secp256k1_ecdsa_recover_compressed(sig.as_ref(), &m) {
 					Ok(pubkey) =>
 						&sp_io::hashing::blake2_256(pubkey.as_ref()) ==
-							<dyn AsRef<[u8; 32]>>::as_ref(who),
+							<dyn AsRef<[u8; 32]>>::as_ref(signer),
 					_ => false,
 				}
 			},
@@ -944,9 +949,13 @@ impl<'a> ::serde::Deserialize<'a> for OpaqueExtrinsic {
 	}
 }
 
+// TODO: OpaqueExtrinsics cannot act like regular extrinsics, right?!
 impl traits::Extrinsic for OpaqueExtrinsic {
 	type Call = ();
 	type SignaturePayload = ();
+	fn is_bare(&self) -> bool {
+		false
+	}
 }
 
 /// Print something that implements `Printable` from the runtime.
diff --git a/substrate/primitives/runtime/src/testing.rs b/substrate/primitives/runtime/src/testing.rs
index 5f94c834a8f..3d6e0b5ab8b 100644
--- a/substrate/primitives/runtime/src/testing.rs
+++ b/substrate/primitives/runtime/src/testing.rs
@@ -21,24 +21,16 @@ use crate::{
 	codec::{Codec, Decode, Encode, MaxEncodedLen},
 	generic,
 	scale_info::TypeInfo,
-	traits::{
-		self, Applyable, BlakeTwo256, Checkable, DispatchInfoOf, Dispatchable, OpaqueKeys,
-		PostDispatchInfoOf, SignaturePayload, SignedExtension, ValidateUnsigned,
-	},
-	transaction_validity::{TransactionSource, TransactionValidity, TransactionValidityError},
-	ApplyExtrinsicResultWithInfo, KeyTypeId,
+	traits::{self, BlakeTwo256, Dispatchable, OpaqueKeys},
+	DispatchResultWithInfo, KeyTypeId,
 };
-use serde::{de::Error as DeError, Deserialize, Deserializer, Serialize, Serializer};
+use serde::{de::Error as DeError, Deserialize, Deserializer, Serialize};
 use sp_core::{
 	crypto::{key_types, ByteArray, CryptoType, Dummy},
 	U256,
 };
 pub use sp_core::{sr25519, H256};
-use std::{
-	cell::RefCell,
-	fmt::{self, Debug},
-	ops::Deref,
-};
+use std::{cell::RefCell, fmt::Debug};
 
 /// A dummy type which can be used instead of regular cryptographic primitives.
 ///
@@ -198,42 +190,6 @@ impl Header {
 	}
 }
 
-/// An opaque extrinsic wrapper type.
-#[derive(PartialEq, Eq, Clone, Debug, Encode, Decode)]
-pub struct ExtrinsicWrapper<Xt>(Xt);
-
-impl<Xt> traits::Extrinsic for ExtrinsicWrapper<Xt> {
-	type Call = ();
-	type SignaturePayload = ();
-
-	fn is_signed(&self) -> Option<bool> {
-		None
-	}
-}
-
-impl<Xt: Encode> serde::Serialize for ExtrinsicWrapper<Xt> {
-	fn serialize<S>(&self, seq: S) -> Result<S::Ok, S::Error>
-	where
-		S: ::serde::Serializer,
-	{
-		self.using_encoded(|bytes| seq.serialize_bytes(bytes))
-	}
-}
-
-impl<Xt> From<Xt> for ExtrinsicWrapper<Xt> {
-	fn from(xt: Xt) -> Self {
-		ExtrinsicWrapper(xt)
-	}
-}
-
-impl<Xt> Deref for ExtrinsicWrapper<Xt> {
-	type Target = Xt;
-
-	fn deref(&self) -> &Self::Target {
-		&self.0
-	}
-}
-
 /// Testing block
 #[derive(PartialEq, Eq, Clone, Serialize, Debug, Encode, Decode, TypeInfo)]
 pub struct Block<Xt> {
@@ -283,139 +239,22 @@ where
 	}
 }
 
-/// The signature payload of a `TestXt`.
-type TxSingaturePayload<Extra> = (u64, Extra);
-
-impl<Extra: TypeInfo> SignaturePayload for TxSingaturePayload<Extra> {
-	type SignatureAddress = u64;
-	type Signature = ();
-	type SignatureExtra = Extra;
-}
-
-/// Test transaction, tuple of (sender, call, signed_extra)
-/// with index only used if sender is some.
-///
-/// If sender is some then the transaction is signed otherwise it is unsigned.
-#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo)]
-pub struct TestXt<Call, Extra> {
-	/// Signature of the extrinsic.
-	pub signature: Option<TxSingaturePayload<Extra>>,
-	/// Call of the extrinsic.
-	pub call: Call,
-}
-
-impl<Call, Extra> TestXt<Call, Extra> {
-	/// Create a new `TextXt`.
-	pub fn new(call: Call, signature: Option<(u64, Extra)>) -> Self {
-		Self { call, signature }
-	}
-}
-
-impl<Call, Extra> Serialize for TestXt<Call, Extra>
-where
-	TestXt<Call, Extra>: Encode,
-{
-	fn serialize<S>(&self, seq: S) -> Result<S::Ok, S::Error>
-	where
-		S: Serializer,
-	{
-		self.using_encoded(|bytes| seq.serialize_bytes(bytes))
-	}
-}
+/// Wrapper over a `u64` that can be used as a `RuntimeCall`.
+#[derive(PartialEq, Eq, Debug, Clone, Encode, Decode, TypeInfo)]
+pub struct MockCallU64(pub u64);
 
-impl<Call, Extra> Debug for TestXt<Call, Extra> {
-	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-		write!(f, "TestXt({:?}, ...)", self.signature.as_ref().map(|x| &x.0))
+impl Dispatchable for MockCallU64 {
+	type RuntimeOrigin = u64;
+	type Config = ();
+	type Info = ();
+	type PostInfo = ();
+	fn dispatch(self, _origin: Self::RuntimeOrigin) -> DispatchResultWithInfo<Self::PostInfo> {
+		Ok(())
 	}
 }
 
-impl<Call: Codec + Sync + Send, Context, Extra> Checkable<Context> for TestXt<Call, Extra> {
-	type Checked = Self;
-	fn check(self, _: &Context) -> Result<Self::Checked, TransactionValidityError> {
-		Ok(self)
-	}
-
-	#[cfg(feature = "try-runtime")]
-	fn unchecked_into_checked_i_know_what_i_am_doing(
-		self,
-		_: &Context,
-	) -> Result<Self::Checked, TransactionValidityError> {
-		unreachable!()
-	}
-}
-
-impl<Call: Codec + Sync + Send + TypeInfo, Extra: TypeInfo> traits::Extrinsic
-	for TestXt<Call, Extra>
-{
-	type Call = Call;
-	type SignaturePayload = TxSingaturePayload<Extra>;
-
-	fn is_signed(&self) -> Option<bool> {
-		Some(self.signature.is_some())
-	}
-
-	fn new(c: Call, sig: Option<Self::SignaturePayload>) -> Option<Self> {
-		Some(TestXt { signature: sig, call: c })
-	}
-}
-
-impl<Call, Extra> traits::ExtrinsicMetadata for TestXt<Call, Extra>
-where
-	Call: Codec + Sync + Send,
-	Extra: SignedExtension<AccountId = u64, Call = Call>,
-{
-	type SignedExtensions = Extra;
-	const VERSION: u8 = 0u8;
-}
-
-impl<Origin, Call, Extra> Applyable for TestXt<Call, Extra>
-where
-	Call: 'static
-		+ Sized
-		+ Send
-		+ Sync
-		+ Clone
-		+ Eq
-		+ Codec
-		+ Debug
-		+ Dispatchable<RuntimeOrigin = Origin>,
-	Extra: SignedExtension<AccountId = u64, Call = Call>,
-	Origin: From<Option<u64>>,
-{
-	type Call = Call;
-
-	/// Checks to see if this is a valid *transaction*. It returns information on it if so.
-	fn validate<U: ValidateUnsigned<Call = Self::Call>>(
-		&self,
-		source: TransactionSource,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> TransactionValidity {
-		if let Some((ref id, ref extra)) = self.signature {
-			Extra::validate(extra, id, &self.call, info, len)
-		} else {
-			let valid = Extra::validate_unsigned(&self.call, info, len)?;
-			let unsigned_validation = U::validate_unsigned(source, &self.call)?;
-			Ok(valid.combine_with(unsigned_validation))
-		}
-	}
-
-	/// Executes all necessary logic needed prior to dispatch and deconstructs into function call,
-	/// index and sender.
-	fn apply<U: ValidateUnsigned<Call = Self::Call>>(
-		self,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Self::Call>> {
-		let maybe_who = if let Some((who, extra)) = self.signature {
-			Extra::pre_dispatch(extra, &who, &self.call, info, len)?;
-			Some(who)
-		} else {
-			Extra::pre_dispatch_unsigned(&self.call, info, len)?;
-			U::pre_dispatch(&self.call)?;
-			None
-		};
-
-		Ok(self.call.dispatch(maybe_who.into()))
+impl From<u64> for MockCallU64 {
+	fn from(value: u64) -> Self {
+		Self(value)
 	}
 }
diff --git a/substrate/primitives/runtime/src/traits.rs b/substrate/primitives/runtime/src/traits/mod.rs
similarity index 94%
rename from substrate/primitives/runtime/src/traits.rs
rename to substrate/primitives/runtime/src/traits/mod.rs
index caede5e2b59..b217166d8de 100644
--- a/substrate/primitives/runtime/src/traits.rs
+++ b/substrate/primitives/runtime/src/traits/mod.rs
@@ -19,7 +19,7 @@
 
 use crate::{
 	generic::Digest,
-	scale_info::{MetaType, StaticTypeInfo, TypeInfo},
+	scale_info::{StaticTypeInfo, TypeInfo},
 	transaction_validity::{
 		TransactionSource, TransactionValidity, TransactionValidityError, UnknownTransaction,
 		ValidTransaction,
@@ -52,6 +52,12 @@ use std::fmt::Display;
 #[cfg(feature = "std")]
 use std::str::FromStr;
 
+pub mod transaction_extension;
+pub use transaction_extension::{
+	DispatchTransaction, TransactionExtension, TransactionExtensionBase,
+	TransactionExtensionInterior, TransactionExtensionMetadata, ValidateResult,
+};
+
 /// A lazy value.
 pub trait Lazy<T: ?Sized> {
 	/// Get a reference to the underlying value.
@@ -1253,7 +1259,7 @@ pub trait Header:
 // that is then used to define `UncheckedExtrinsic`.
 // ```ignore
 // pub type UncheckedExtrinsic =
-// 	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+// 	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 // ```
 // This `UncheckedExtrinsic` is supplied to the `Block`.
 // ```ignore
@@ -1323,19 +1329,31 @@ pub trait Extrinsic: Sized {
 
 	/// Is this `Extrinsic` signed?
 	/// If no information are available about signed/unsigned, `None` should be returned.
+	#[deprecated = "Use and implement `!is_bare()` instead"]
 	fn is_signed(&self) -> Option<bool> {
 		None
 	}
 
-	/// Create new instance of the extrinsic.
-	///
-	/// Extrinsics can be split into:
-	/// 1. Inherents (no signature; created by validators during block production)
-	/// 2. Unsigned Transactions (no signature; represent "system calls" or other special kinds of
-	/// calls) 3. Signed Transactions (with signature; a regular transactions with known origin)
+	/// Returns `true` if this `Extrinsic` is bare.
+	fn is_bare(&self) -> bool {
+		#[allow(deprecated)]
+		!self
+			.is_signed()
+			.expect("`is_signed` must return `Some` on production extrinsics; qed")
+	}
+
+	/// Create a new old-school extrinsic, either a bare extrinsic if `_signed_data` is `None` or
+	/// a signed transaction is it is `Some`.
+	#[deprecated = "Use `new_inherent` or the `CreateTransaction` trait instead"]
 	fn new(_call: Self::Call, _signed_data: Option<Self::SignaturePayload>) -> Option<Self> {
 		None
 	}
+
+	/// Create a new inherent extrinsic.
+	fn new_inherent(function: Self::Call) -> Self {
+		#[allow(deprecated)]
+		Self::new(function, None).expect("Extrinsic must provide inherents; qed")
+	}
 }
 
 /// Something that acts like a [`SignaturePayload`](Extrinsic::SignaturePayload) of an
@@ -1371,7 +1389,8 @@ pub trait ExtrinsicMetadata {
 	const VERSION: u8;
 
 	/// Signed extensions attached to this `Extrinsic`.
-	type SignedExtensions: SignedExtension;
+	// TODO: metadata-v16: rename to `Extension`.
+	type Extra;
 }
 
 /// Extract the hashing type for a block.
@@ -1456,6 +1475,8 @@ pub trait Dispatchable {
 		-> crate::DispatchResultWithInfo<Self::PostInfo>;
 }
 
+/// Shortcut to reference the `Origin` type of a `Dispatchable`.
+pub type OriginOf<T> = <T as Dispatchable>::RuntimeOrigin;
 /// Shortcut to reference the `Info` type of a `Dispatchable`.
 pub type DispatchInfoOf<T> = <T as Dispatchable>::Info;
 /// Shortcut to reference the `PostInfo` type of a `Dispatchable`.
@@ -1474,8 +1495,49 @@ impl Dispatchable for () {
 	}
 }
 
+/// Dispatchable impl containing an arbitrary value which panics if it actually is dispatched.
+#[derive(Clone, Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
+pub struct FakeDispatchable<Inner>(pub Inner);
+impl<Inner> From<Inner> for FakeDispatchable<Inner> {
+	fn from(inner: Inner) -> Self {
+		Self(inner)
+	}
+}
+impl<Inner> FakeDispatchable<Inner> {
+	/// Take `self` and return the underlying inner value.
+	pub fn deconstruct(self) -> Inner {
+		self.0
+	}
+}
+impl<Inner> AsRef<Inner> for FakeDispatchable<Inner> {
+	fn as_ref(&self) -> &Inner {
+		&self.0
+	}
+}
+
+impl<Inner> Dispatchable for FakeDispatchable<Inner> {
+	type RuntimeOrigin = ();
+	type Config = ();
+	type Info = ();
+	type PostInfo = ();
+	fn dispatch(
+		self,
+		_origin: Self::RuntimeOrigin,
+	) -> crate::DispatchResultWithInfo<Self::PostInfo> {
+		panic!("This implementation should not be used for actual dispatch.");
+	}
+}
+
+/// Runtime Origin which includes a System Origin variant whose `AccountId` is the parameter.
+pub trait AsSystemOriginSigner<AccountId> {
+	/// Extract a reference of the inner value of the System `Origin::Signed` variant, if self has
+	/// that variant.
+	fn as_system_origin_signer(&self) -> Option<&AccountId>;
+}
+
 /// Means by which a transaction may be extended. This type embodies both the data and the logic
 /// that should be additionally associated with the transaction. It should be plain old data.
+#[deprecated = "Use `TransactionExtension` instead."]
 pub trait SignedExtension:
 	Codec + Debug + Sync + Send + Clone + Eq + PartialEq + StaticTypeInfo
 {
@@ -1493,7 +1555,7 @@ pub trait SignedExtension:
 
 	/// Any additional data that will go into the signed payload. This may be created dynamically
 	/// from the transaction using the `additional_signed` function.
-	type AdditionalSigned: Encode + TypeInfo;
+	type AdditionalSigned: Codec + TypeInfo;
 
 	/// The type that encodes information that can be passed from pre_dispatch to post-dispatch.
 	type Pre;
@@ -1532,38 +1594,6 @@ pub trait SignedExtension:
 		len: usize,
 	) -> Result<Self::Pre, TransactionValidityError>;
 
-	/// Validate an unsigned transaction for the transaction queue.
-	///
-	/// This function can be called frequently by the transaction queue
-	/// to obtain transaction validity against current state.
-	/// It should perform all checks that determine a valid unsigned transaction,
-	/// and quickly eliminate ones that are stale or incorrect.
-	///
-	/// Make sure to perform the same checks in `pre_dispatch_unsigned` function.
-	fn validate_unsigned(
-		_call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
-		_len: usize,
-	) -> TransactionValidity {
-		Ok(ValidTransaction::default())
-	}
-
-	/// Do any pre-flight stuff for a unsigned transaction.
-	///
-	/// Note this function by default delegates to `validate_unsigned`, so that
-	/// all checks performed for the transaction queue are also performed during
-	/// the dispatch phase (applying the extrinsic).
-	///
-	/// If you ever override this function, you need to make sure to always
-	/// perform the same validation as in `validate_unsigned`.
-	fn pre_dispatch_unsigned(
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<(), TransactionValidityError> {
-		Self::validate_unsigned(call, info, len).map(|_| ()).map_err(Into::into)
-	}
-
 	/// Do any post-flight stuff for an extrinsic.
 	///
 	/// If the transaction is signed, then `_pre` will contain the output of `pre_dispatch`,
@@ -1594,126 +1624,47 @@ pub trait SignedExtension:
 	///
 	/// As a [`SignedExtension`] can be a tuple of [`SignedExtension`]s we need to return a `Vec`
 	/// that holds the metadata of each one. Each individual `SignedExtension` must return
-	/// *exactly* one [`SignedExtensionMetadata`].
+	/// *exactly* one [`TransactionExtensionMetadata`].
 	///
 	/// This method provides a default implementation that returns a vec containing a single
-	/// [`SignedExtensionMetadata`].
-	fn metadata() -> Vec<SignedExtensionMetadata> {
-		sp_std::vec![SignedExtensionMetadata {
+	/// [`TransactionExtensionMetadata`].
+	fn metadata() -> Vec<TransactionExtensionMetadata> {
+		sp_std::vec![TransactionExtensionMetadata {
 			identifier: Self::IDENTIFIER,
 			ty: scale_info::meta_type::<Self>(),
 			additional_signed: scale_info::meta_type::<Self::AdditionalSigned>()
 		}]
 	}
-}
-
-/// Information about a [`SignedExtension`] for the runtime metadata.
-pub struct SignedExtensionMetadata {
-	/// The unique identifier of the [`SignedExtension`].
-	pub identifier: &'static str,
-	/// The type of the [`SignedExtension`].
-	pub ty: MetaType,
-	/// The type of the [`SignedExtension`] additional signed data for the payload.
-	pub additional_signed: MetaType,
-}
-
-#[impl_for_tuples(1, 12)]
-impl<AccountId, Call: Dispatchable> SignedExtension for Tuple {
-	for_tuples!( where #( Tuple: SignedExtension<AccountId=AccountId, Call=Call,> )* );
-	type AccountId = AccountId;
-	type Call = Call;
-	const IDENTIFIER: &'static str = "You should call `identifier()`!";
-	for_tuples!( type AdditionalSigned = ( #( Tuple::AdditionalSigned ),* ); );
-	for_tuples!( type Pre = ( #( Tuple::Pre ),* ); );
-
-	fn additional_signed(&self) -> Result<Self::AdditionalSigned, TransactionValidityError> {
-		Ok(for_tuples!( ( #( Tuple.additional_signed()? ),* ) ))
-	}
-
-	fn validate(
-		&self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> TransactionValidity {
-		let valid = ValidTransaction::default();
-		for_tuples!( #( let valid = valid.combine_with(Tuple.validate(who, call, info, len)?); )* );
-		Ok(valid)
-	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		Ok(for_tuples!( ( #( Tuple.pre_dispatch(who, call, info, len)? ),* ) ))
-	}
 
+	/// Validate an unsigned transaction for the transaction queue.
+	///
+	/// This function can be called frequently by the transaction queue
+	/// to obtain transaction validity against current state.
+	/// It should perform all checks that determine a valid unsigned transaction,
+	/// and quickly eliminate ones that are stale or incorrect.
 	fn validate_unsigned(
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
+		_call: &Self::Call,
+		_info: &DispatchInfoOf<Self::Call>,
+		_len: usize,
 	) -> TransactionValidity {
-		let valid = ValidTransaction::default();
-		for_tuples!( #( let valid = valid.combine_with(Tuple::validate_unsigned(call, info, len)?); )* );
-		Ok(valid)
+		Ok(ValidTransaction::default())
 	}
 
+	/// Do any pre-flight stuff for an unsigned transaction.
+	///
+	/// Note this function by default delegates to `validate_unsigned`, so that
+	/// all checks performed for the transaction queue are also performed during
+	/// the dispatch phase (applying the extrinsic).
+	///
+	/// If you ever override this function, you need not perform the same validation as in
+	/// `validate_unsigned`.
 	fn pre_dispatch_unsigned(
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
+		_call: &Self::Call,
+		_info: &DispatchInfoOf<Self::Call>,
+		_len: usize,
 	) -> Result<(), TransactionValidityError> {
-		for_tuples!( #( Tuple::pre_dispatch_unsigned(call, info, len)?; )* );
 		Ok(())
 	}
-
-	fn post_dispatch(
-		pre: Option<Self::Pre>,
-		info: &DispatchInfoOf<Self::Call>,
-		post_info: &PostDispatchInfoOf<Self::Call>,
-		len: usize,
-		result: &DispatchResult,
-	) -> Result<(), TransactionValidityError> {
-		match pre {
-			Some(x) => {
-				for_tuples!( #( Tuple::post_dispatch(Some(x.Tuple), info, post_info, len, result)?; )* );
-			},
-			None => {
-				for_tuples!( #( Tuple::post_dispatch(None, info, post_info, len, result)?; )* );
-			},
-		}
-		Ok(())
-	}
-
-	fn metadata() -> Vec<SignedExtensionMetadata> {
-		let mut ids = Vec::new();
-		for_tuples!( #( ids.extend(Tuple::metadata()); )* );
-		ids
-	}
-}
-
-impl SignedExtension for () {
-	type AccountId = u64;
-	type AdditionalSigned = ();
-	type Call = ();
-	type Pre = ();
-	const IDENTIFIER: &'static str = "UnitSignedExtension";
-	fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> {
-		Ok(())
-	}
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(|_| ())
-	}
 }
 
 /// An "executable" piece of information, used by the standard Substrate Executive in order to
@@ -1762,6 +1713,7 @@ pub trait GetNodeBlockType {
 /// function is called right before dispatching the call wrapped by an unsigned extrinsic. The
 /// [`validate_unsigned`](Self::validate_unsigned) function is mainly being used in the context of
 /// the transaction pool to check the validity of the call wrapped by an unsigned extrinsic.
+// TODO: Rename to ValidateBareTransaction (or just remove).
 pub trait ValidateUnsigned {
 	/// The call to validate
 	type Call;
diff --git a/substrate/primitives/runtime/src/traits/transaction_extension/as_transaction_extension.rs b/substrate/primitives/runtime/src/traits/transaction_extension/as_transaction_extension.rs
new file mode 100644
index 00000000000..a834e88c0b4
--- /dev/null
+++ b/substrate/primitives/runtime/src/traits/transaction_extension/as_transaction_extension.rs
@@ -0,0 +1,133 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! The [AsTransactionExtension] adapter struct for adapting [SignedExtension]s to
+//! [TransactionExtension]s.
+
+#![allow(deprecated)]
+
+use scale_info::TypeInfo;
+use sp_core::RuntimeDebug;
+
+use crate::{
+	traits::{AsSystemOriginSigner, SignedExtension, ValidateResult},
+	InvalidTransaction,
+};
+
+use super::*;
+
+/// Adapter to use a `SignedExtension` in the place of a `TransactionExtension`.
+#[derive(TypeInfo, Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug)]
+#[deprecated = "Convert your SignedExtension to a TransactionExtension."]
+pub struct AsTransactionExtension<SE: SignedExtension>(pub SE);
+
+impl<SE: SignedExtension + Default> Default for AsTransactionExtension<SE> {
+	fn default() -> Self {
+		Self(SE::default())
+	}
+}
+
+impl<SE: SignedExtension> From<SE> for AsTransactionExtension<SE> {
+	fn from(value: SE) -> Self {
+		Self(value)
+	}
+}
+
+impl<SE: SignedExtension> TransactionExtensionBase for AsTransactionExtension<SE> {
+	const IDENTIFIER: &'static str = SE::IDENTIFIER;
+	type Implicit = SE::AdditionalSigned;
+
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+		self.0.additional_signed()
+	}
+	fn metadata() -> Vec<TransactionExtensionMetadata> {
+		SE::metadata()
+	}
+}
+
+impl<SE: SignedExtension, Context> TransactionExtension<SE::Call, Context>
+	for AsTransactionExtension<SE>
+where
+	<SE::Call as Dispatchable>::RuntimeOrigin: AsSystemOriginSigner<SE::AccountId> + Clone,
+{
+	type Val = ();
+	type Pre = SE::Pre;
+
+	fn validate(
+		&self,
+		origin: <SE::Call as Dispatchable>::RuntimeOrigin,
+		call: &SE::Call,
+		info: &DispatchInfoOf<SE::Call>,
+		len: usize,
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, SE::Call> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
+		let r = self.0.validate(who, call, info, len)?;
+		Ok((r, (), origin))
+	}
+
+	fn prepare(
+		self,
+		_: (),
+		origin: &<SE::Call as Dispatchable>::RuntimeOrigin,
+		call: &SE::Call,
+		info: &DispatchInfoOf<SE::Call>,
+		len: usize,
+		_context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		let who = origin.as_system_origin_signer().ok_or(InvalidTransaction::BadSigner)?;
+		self.0.pre_dispatch(who, call, info, len)
+	}
+
+	fn post_dispatch(
+		pre: Self::Pre,
+		info: &DispatchInfoOf<SE::Call>,
+		post_info: &PostDispatchInfoOf<SE::Call>,
+		len: usize,
+		result: &DispatchResult,
+		_context: &Context,
+	) -> Result<(), TransactionValidityError> {
+		SE::post_dispatch(Some(pre), info, post_info, len, result)
+	}
+
+	fn validate_bare_compat(
+		call: &SE::Call,
+		info: &DispatchInfoOf<SE::Call>,
+		len: usize,
+	) -> TransactionValidity {
+		SE::validate_unsigned(call, info, len)
+	}
+
+	fn pre_dispatch_bare_compat(
+		call: &SE::Call,
+		info: &DispatchInfoOf<SE::Call>,
+		len: usize,
+	) -> Result<(), TransactionValidityError> {
+		SE::pre_dispatch_unsigned(call, info, len)
+	}
+
+	fn post_dispatch_bare_compat(
+		info: &DispatchInfoOf<SE::Call>,
+		post_info: &PostDispatchInfoOf<SE::Call>,
+		len: usize,
+		result: &DispatchResult,
+	) -> Result<(), TransactionValidityError> {
+		SE::post_dispatch(None, info, post_info, len, result)
+	}
+}
diff --git a/substrate/primitives/runtime/src/traits/transaction_extension/dispatch_transaction.rs b/substrate/primitives/runtime/src/traits/transaction_extension/dispatch_transaction.rs
new file mode 100644
index 00000000000..8efa586aa0e
--- /dev/null
+++ b/substrate/primitives/runtime/src/traits/transaction_extension/dispatch_transaction.rs
@@ -0,0 +1,141 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! The [DispatchTransaction] trait.
+
+use super::*;
+
+/// Single-function utility trait with a blanket impl over [TransactionExtension] in order to
+/// provide transaction dispatching functionality. We avoid implementing this directly on the trait
+/// since we never want it to be overriden by the trait implementation.
+pub trait DispatchTransaction<Call: Dispatchable> {
+	/// The origin type of the transaction.
+	type Origin;
+	/// The info type.
+	type Info;
+	/// The resultant type.
+	type Result;
+	/// The `Val` of the extension.
+	type Val;
+	/// The `Pre` of the extension.
+	type Pre;
+	/// Just validate a transaction.
+	///
+	/// The is basically the same as [validate](TransactionExtension::validate), except that there
+	/// is no need to supply the bond data.
+	fn validate_only(
+		&self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &Self::Info,
+		len: usize,
+	) -> Result<(ValidTransaction, Self::Val, Self::Origin), TransactionValidityError>;
+	/// Prepare and validate a transaction, ready for dispatch.
+	fn validate_and_prepare(
+		self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &Self::Info,
+		len: usize,
+	) -> Result<(Self::Pre, Self::Origin), TransactionValidityError>;
+	/// Dispatch a transaction with the given base origin and call.
+	fn dispatch_transaction(
+		self,
+		origin: Self::Origin,
+		call: Call,
+		info: &Self::Info,
+		len: usize,
+	) -> Self::Result;
+	/// Do everything which would be done in a [dispatch_transaction](Self::dispatch_transaction),
+	/// but instead of executing the call, execute `substitute` instead. Since this doesn't actually
+	/// dispatch the call, it doesn't need to consume it and so `call` can be passed as a reference.
+	fn test_run(
+		self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &Self::Info,
+		len: usize,
+		substitute: impl FnOnce(
+			Self::Origin,
+		) -> crate::DispatchResultWithInfo<<Call as Dispatchable>::PostInfo>,
+	) -> Self::Result;
+}
+
+impl<T: TransactionExtension<Call, ()>, Call: Dispatchable + Encode> DispatchTransaction<Call>
+	for T
+{
+	type Origin = <Call as Dispatchable>::RuntimeOrigin;
+	type Info = DispatchInfoOf<Call>;
+	type Result = crate::ApplyExtrinsicResultWithInfo<PostDispatchInfoOf<Call>>;
+	type Val = T::Val;
+	type Pre = T::Pre;
+
+	fn validate_only(
+		&self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+	) -> Result<(ValidTransaction, T::Val, Self::Origin), TransactionValidityError> {
+		self.validate(origin, call, info, len, &mut (), self.implicit()?, call)
+	}
+	fn validate_and_prepare(
+		self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+	) -> Result<(T::Pre, Self::Origin), TransactionValidityError> {
+		let (_, val, origin) = self.validate_only(origin, call, info, len)?;
+		let pre = self.prepare(val, &origin, &call, info, len, &())?;
+		Ok((pre, origin))
+	}
+	fn dispatch_transaction(
+		self,
+		origin: <Call as Dispatchable>::RuntimeOrigin,
+		call: Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+	) -> Self::Result {
+		let (pre, origin) = self.validate_and_prepare(origin, &call, info, len)?;
+		let res = call.dispatch(origin);
+		let post_info = res.unwrap_or_else(|err| err.post_info);
+		let pd_res = res.map(|_| ()).map_err(|e| e.error);
+		T::post_dispatch(pre, info, &post_info, len, &pd_res, &())?;
+		Ok(res)
+	}
+	fn test_run(
+		self,
+		origin: Self::Origin,
+		call: &Call,
+		info: &Self::Info,
+		len: usize,
+		substitute: impl FnOnce(
+			Self::Origin,
+		) -> crate::DispatchResultWithInfo<<Call as Dispatchable>::PostInfo>,
+	) -> Self::Result {
+		let (pre, origin) = self.validate_and_prepare(origin, &call, info, len)?;
+		let res = substitute(origin);
+		let post_info = match res {
+			Ok(info) => info,
+			Err(err) => err.post_info,
+		};
+		let pd_res = res.map(|_| ()).map_err(|e| e.error);
+		T::post_dispatch(pre, info, &post_info, len, &pd_res, &())?;
+		Ok(res)
+	}
+}
diff --git a/substrate/primitives/runtime/src/traits/transaction_extension/mod.rs b/substrate/primitives/runtime/src/traits/transaction_extension/mod.rs
new file mode 100644
index 00000000000..69a0ba18adb
--- /dev/null
+++ b/substrate/primitives/runtime/src/traits/transaction_extension/mod.rs
@@ -0,0 +1,526 @@
+// This file is part of Substrate.
+
+// Copyright (C) Parity Technologies (UK) Ltd.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// 	http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! The transaction extension trait.
+
+use crate::{
+	scale_info::{MetaType, StaticTypeInfo},
+	transaction_validity::{TransactionValidity, TransactionValidityError, ValidTransaction},
+	DispatchResult,
+};
+use codec::{Codec, Decode, Encode};
+use impl_trait_for_tuples::impl_for_tuples;
+#[doc(hidden)]
+pub use sp_std::marker::PhantomData;
+use sp_std::{self, fmt::Debug, prelude::*};
+use sp_weights::Weight;
+use tuplex::{PopFront, PushBack};
+
+use super::{DispatchInfoOf, Dispatchable, OriginOf, PostDispatchInfoOf};
+
+mod as_transaction_extension;
+mod dispatch_transaction;
+#[allow(deprecated)]
+pub use as_transaction_extension::AsTransactionExtension;
+pub use dispatch_transaction::DispatchTransaction;
+
+/// Shortcut for the result value of the `validate` function.
+pub type ValidateResult<Val, Call> =
+	Result<(ValidTransaction, Val, OriginOf<Call>), TransactionValidityError>;
+
+/// Simple blanket implementation trait to denote the bounds of a type which can be contained within
+/// a [`TransactionExtension`].
+pub trait TransactionExtensionInterior:
+	Codec + Debug + Sync + Send + Clone + Eq + PartialEq + StaticTypeInfo
+{
+}
+impl<T: Codec + Debug + Sync + Send + Clone + Eq + PartialEq + StaticTypeInfo>
+	TransactionExtensionInterior for T
+{
+}
+
+/// Base for [TransactionExtension]s; this contains the associated types and does not require any
+/// generic parameterization.
+pub trait TransactionExtensionBase: TransactionExtensionInterior {
+	/// Unique identifier of this signed extension.
+	///
+	/// This will be exposed in the metadata to identify the signed extension used in an extrinsic.
+	const IDENTIFIER: &'static str;
+
+	/// Any additional data which was known at the time of transaction construction and can be
+	/// useful in authenticating the transaction. This is determined dynamically in part from the
+	/// on-chain environment using the `implicit` function and not directly contained in the
+	/// transaction itself and therefore is considered "implicit".
+	type Implicit: Codec + StaticTypeInfo;
+
+	/// Determine any additional data which was known at the time of transaction construction and
+	/// can be useful in authenticating the transaction. The expected usage of this is to include in
+	/// any data which is signed and verified as part of transactiob validation. Also perform any
+	/// pre-signature-verification checks and return an error if needed.
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+		use crate::InvalidTransaction::IndeterminateImplicit;
+		Ok(Self::Implicit::decode(&mut &[][..]).map_err(|_| IndeterminateImplicit)?)
+	}
+
+	/// The weight consumed by executing this extension instance fully during transaction dispatch.
+	fn weight(&self) -> Weight {
+		Weight::zero()
+	}
+
+	/// Returns the metadata for this extension.
+	///
+	/// As a [`TransactionExtension`] can be a tuple of [`TransactionExtension`]s we need to return
+	/// a `Vec` that holds the metadata of each one. Each individual `TransactionExtension` must
+	/// return *exactly* one [`TransactionExtensionMetadata`].
+	///
+	/// This method provides a default implementation that returns a vec containing a single
+	/// [`TransactionExtensionMetadata`].
+	fn metadata() -> Vec<TransactionExtensionMetadata> {
+		sp_std::vec![TransactionExtensionMetadata {
+			identifier: Self::IDENTIFIER,
+			ty: scale_info::meta_type::<Self>(),
+			// TODO: Metadata-v16: Rename to "implicit"
+			additional_signed: scale_info::meta_type::<Self::Implicit>()
+		}]
+	}
+}
+
+/// Means by which a transaction may be extended. This type embodies both the data and the logic
+/// that should be additionally associated with the transaction. It should be plain old data.
+///
+/// The simplest transaction extension would be the Unit type (and empty pipeline) `()`. This
+/// executes no additional logic and implies a dispatch of the transaction's call using the
+/// inherited origin (either `None` or `Signed`, depending on whether this is a signed or general
+/// transaction).
+///
+/// Transaction extensions are capable of altering certain associated semantics:
+///
+/// - They may define the origin with which the transaction's call should be dispatched.
+/// - They may define various parameters used by the transction queue to determine under what
+///   conditions the transaction should be retained and introduced on-chain.
+/// - They may define whether this transaction is acceptable for introduction on-chain at all.
+///
+/// Each of these semantics are defined by the `validate` function.
+///
+/// **NOTE: Transaction extensions cannot under any circumctances alter the call itself.**
+///
+/// Transaction extensions are capable of defining logic which is executed additionally to the
+/// dispatch of the call:
+///
+/// - They may define logic which must be executed prior to the dispatch of the call.
+/// - They may also define logic which must be executed after the dispatch of the call.
+///
+/// Each of these semantics are defined by the `prepare` and `post_dispatch` functions respectively.
+///
+/// Finally, transaction extensions may define additional data to help define the implications of
+/// the logic they introduce. This additional data may be explicitly defined by the transaction
+/// author (in which case it is included as part of the transaction body), or it may be implicitly
+/// defined by the transaction extension based around the on-chain state (which the transaction
+/// author is assumed to know). This data may be utilized by the above logic to alter how a node's
+/// transaction queue treats this transaction.
+///
+/// ## Default implementations
+///
+/// Of the 5 functions in this trait, 3 of them must return a value of an associated type on
+/// success, and none of these types implement [Default] or anything like it. This means that
+/// default implementations cannot be provided for these functions. However, a macro is provided
+/// [impl_tx_ext_default](crate::impl_tx_ext_default) which is capable of generating default
+/// implementations for each of these 3 functions. If you do not wish to introduce additional logic
+/// into the transaction pipeline, then it is recommended that you use this macro to implement these
+/// functions.
+///
+/// ## Pipelines, Inherited Implications, and Authorized Origins
+///
+/// Requiring a single transaction extension to define all of the above semantics would be
+/// cumbersome and would lead to a lot of boilerplate. Instead, transaction extensions are
+/// aggregated into pipelines, which are tuples of transaction extensions. Each extension in the
+/// pipeline is executed in order, and the output of each extension is aggregated and/or relayed as
+/// the input to the next extension in the pipeline.
+///
+/// This ordered composition happens with all datatypes ([Val](TransactionExtension::Val),
+/// [Pre](TransactionExtension::Pre) and [Implicit](TransactionExtensionBase::Implicit)) as well as
+/// all functions. There are important consequences stemming from how the composition affects the
+/// meaning of the `origin` and `implication` parameters as well as the results. Whereas the
+/// [prepare](TransactionExtension::prepare) and
+/// [post_dispatch](TransactionExtension::post_dispatch) functions are clear in their meaning, the
+/// [validate](TransactionExtension::validate) function is fairly sophisticated and warrants
+/// further explanation.
+///
+/// Firstly, the `origin` parameter. The `origin` passed into the first item in a pipeline is simply
+/// that passed into the tuple itself. It represents an authority who has authorized the implication
+/// of the transaction, as of the extension it has been passed into *and any further extensions it
+/// may pass though, all the way to, and including, the transaction's dispatch call itself. Each
+/// following item in the pipeline is passed the origin which the previous item returned. The origin
+/// returned from the final item in the pipeline is the origin which is returned by the tuple
+/// itself.
+///
+/// This means that if a constituent extension returns a different origin to the one it was called
+/// with, then (assuming no other extension changes it further) *this new origin will be used for
+/// all extensions following it in the pipeline, and will be returned from the pipeline to be used
+/// as the origin for the call's dispatch*. The call itself as well as all these extensions
+/// following may each imply consequence for this origin. We call this the *inherited implication*.
+///
+/// The *inherited implication* is the cumulated on-chain effects born by whatever origin is
+/// returned. It is expressed to the [validate](TransactionExtension::validate) function only as the
+/// `implication` argument which implements the [Encode] trait. A transaction extension may define
+/// its own implications through its own fields and the
+/// [implicit](TransactionExtensionBase::implicit) function. This is only utilized by extensions
+/// which preceed it in a pipeline or, if the transaction is an old-school signed trasnaction, the
+/// underlying transaction verification logic.
+///
+/// **The inherited implication passed as the `implication` parameter to
+/// [validate](TransactionExtension::validate) does not include the extension's inner data itself
+/// nor does it include the result of the extension's `implicit` function.** If you both provide an
+/// implication and rely on the implication, then you need to manually aggregate your extensions
+/// implication with the aggregated implication passed in.
+pub trait TransactionExtension<Call: Dispatchable, Context>: TransactionExtensionBase {
+	/// The type that encodes information that can be passed from validate to prepare.
+	type Val;
+
+	/// The type that encodes information that can be passed from prepare to post-dispatch.
+	type Pre;
+
+	/// Validate a transaction for the transaction queue.
+	///
+	/// This function can be called frequently by the transaction queue to obtain transaction
+	/// validity against current state. It should perform all checks that determine a valid
+	/// transaction, that can pay for its execution and quickly eliminate ones that are stale or
+	/// incorrect.
+	///
+	/// Parameters:
+	/// - `origin`: The origin of the transaction which this extension inherited; coming from an
+	///   "old-school" *signed transaction*, this will be a system `RawOrigin::Signed` value. If the
+	///   transaction is a "new-school" *General Transaction*, then this will be a system
+	///   `RawOrigin::None` value. If this extension is an item in a composite, then it could be
+	///   anything which was previously returned as an `origin` value in the result of a `validate`
+	///   call.
+	/// - `call`: The `Call` wrapped by this extension.
+	/// - `info`: Information concerning, and inherent to, the transaction's call.
+	/// - `len`: The total length of the encoded transaction.
+	/// - `inherited_implication`: The *implication* which this extension inherits. This is a tuple
+	///   of the transaction's call and some additional opaque-but-encodable data. Coming directly
+	///   from a transaction, the latter is [()]. However, if this extension is expressed as part of
+	///   a composite type, then the latter component is equal to any further implications to which
+	///   the returned `origin` could potentially apply. See Pipelines, Inherited Implications, and
+	///   Authorized Origins for more information.
+	/// - `context`: Some opaque mutable context, as yet unused.
+	///
+	/// Returns a [ValidateResult], which is a [Result] whose success type is a tuple of
+	/// [ValidTransaction] (defining useful metadata for the transaction queue), the [Self::Val]
+	/// token of this transaction, which gets passed into [prepare](TransactionExtension::prepare),
+	/// and the origin of the transaction, which gets passed into
+	/// [prepare](TransactionExtension::prepare) and is ultimately used for dispatch.
+	fn validate(
+		&self,
+		origin: OriginOf<Call>,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+		context: &mut Context,
+		self_implicit: Self::Implicit,
+		inherited_implication: &impl Encode,
+	) -> ValidateResult<Self::Val, Call>;
+
+	/// Do any pre-flight stuff for a transaction after validation.
+	///
+	/// This is for actions which do not happen in the transaction queue but only immediately prior
+	/// to the point of dispatch on-chain. This should not return an error, since errors should
+	/// already have been identified during the [validate](TransactionExtension::validate) call. If
+	/// an error is returned, the transaction will be considered invalid but no state changes will
+	/// happen and therefore work done in [validate](TransactionExtension::validate) will not be
+	/// paid for.
+	///
+	/// Unlike `validate`, this function may consume `self`.
+	///
+	/// Parameters:
+	/// - `val`: `Self::Val` returned by the result of the `validate` call.
+	/// - `origin`: The origin returned by the result of the `validate` call.
+	/// - `call`: The `Call` wrapped by this extension.
+	/// - `info`: Information concerning, and inherent to, the transaction's call.
+	/// - `len`: The total length of the encoded transaction.
+	/// - `context`: Some opaque mutable context, as yet unused.
+	///
+	/// Returns a [Self::Pre] value on success, which gets passed into
+	/// [post_dispatch](TransactionExtension::post_dispatch) and after the call is dispatched.
+	///
+	/// IMPORTANT: **Checks made in validation need not be repeated here.**
+	fn prepare(
+		self,
+		val: Self::Val,
+		origin: &OriginOf<Call>,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+		context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError>;
+
+	/// Do any post-flight stuff for an extrinsic.
+	///
+	/// `_pre` contains the output of `prepare`.
+	///
+	/// This gets given the `DispatchResult` `_result` from the extrinsic and can, if desired,
+	/// introduce a `TransactionValidityError`, causing the block to become invalid for including
+	/// it.
+	///
+	/// Parameters:
+	/// - `pre`: `Self::Pre` returned by the result of the `prepare` call prior to dispatch.
+	/// - `info`: Information concerning, and inherent to, the transaction's call.
+	/// - `post_info`: Information concerning the dispatch of the transaction's call.
+	/// - `len`: The total length of the encoded transaction.
+	/// - `result`: The result of the dispatch.
+	/// - `context`: Some opaque mutable context, as yet unused.
+	///
+	/// WARNING: It is dangerous to return an error here. To do so will fundamentally invalidate the
+	/// transaction and any block that it is included in, causing the block author to not be
+	/// compensated for their work in validating the transaction or producing the block so far. It
+	/// can only be used safely when you *know* that the transaction is one that would only be
+	/// introduced by the current block author.
+	fn post_dispatch(
+		_pre: Self::Pre,
+		_info: &DispatchInfoOf<Call>,
+		_post_info: &PostDispatchInfoOf<Call>,
+		_len: usize,
+		_result: &DispatchResult,
+		_context: &Context,
+	) -> Result<(), TransactionValidityError> {
+		Ok(())
+	}
+
+	/// Compatibility function for supporting the `SignedExtension::validate_unsigned` function.
+	///
+	/// DO NOT USE! THIS MAY BE REMOVED AT ANY TIME!
+	#[deprecated = "Only for compatibility. DO NOT USE."]
+	fn validate_bare_compat(
+		_call: &Call,
+		_info: &DispatchInfoOf<Call>,
+		_len: usize,
+	) -> TransactionValidity {
+		Ok(ValidTransaction::default())
+	}
+
+	/// Compatibility function for supporting the `SignedExtension::pre_dispatch_unsigned` function.
+	///
+	/// DO NOT USE! THIS MAY BE REMOVED AT ANY TIME!
+	#[deprecated = "Only for compatibility. DO NOT USE."]
+	fn pre_dispatch_bare_compat(
+		_call: &Call,
+		_info: &DispatchInfoOf<Call>,
+		_len: usize,
+	) -> Result<(), TransactionValidityError> {
+		Ok(())
+	}
+
+	/// Compatibility function for supporting the `SignedExtension::post_dispatch` function where
+	/// `pre` is `None`.
+	///
+	/// DO NOT USE! THIS MAY BE REMOVED AT ANY TIME!
+	#[deprecated = "Only for compatibility. DO NOT USE."]
+	fn post_dispatch_bare_compat(
+		_info: &DispatchInfoOf<Call>,
+		_post_info: &PostDispatchInfoOf<Call>,
+		_len: usize,
+		_result: &DispatchResult,
+	) -> Result<(), TransactionValidityError> {
+		Ok(())
+	}
+}
+
+/// Implict
+#[macro_export]
+macro_rules! impl_tx_ext_default {
+	($call:ty ; $context:ty ; , $( $rest:tt )*) => {
+		impl_tx_ext_default!{$call ; $context ; $( $rest )*}
+	};
+	($call:ty ; $context:ty ; validate $( $rest:tt )*) => {
+		fn validate(
+			&self,
+			origin: $crate::traits::OriginOf<$call>,
+			_call: &$call,
+			_info: &$crate::traits::DispatchInfoOf<$call>,
+			_len: usize,
+			_context: &mut $context,
+			_self_implicit: Self::Implicit,
+			_inherited_implication: &impl $crate::codec::Encode,
+		) -> $crate::traits::ValidateResult<Self::Val, $call> {
+			Ok((Default::default(), Default::default(), origin))
+		}
+		impl_tx_ext_default!{$call ; $context ; $( $rest )*}
+	};
+	($call:ty ; $context:ty ; prepare $( $rest:tt )*) => {
+		fn prepare(
+			self,
+			_val: Self::Val,
+			_origin: &$crate::traits::OriginOf<$call>,
+			_call: &$call,
+			_info: &$crate::traits::DispatchInfoOf<$call>,
+			_len: usize,
+			_context: & $context,
+		) -> Result<Self::Pre, $crate::TransactionValidityError> {
+			Ok(Default::default())
+		}
+		impl_tx_ext_default!{$call ; $context ; $( $rest )*}
+	};
+	($call:ty ; $context:ty ;) => {};
+}
+
+/// Information about a [`TransactionExtension`] for the runtime metadata.
+pub struct TransactionExtensionMetadata {
+	/// The unique identifier of the [`TransactionExtension`].
+	pub identifier: &'static str,
+	/// The type of the [`TransactionExtension`].
+	pub ty: MetaType,
+	/// The type of the [`TransactionExtension`] additional signed data for the payload.
+	// TODO: Rename "implicit"
+	pub additional_signed: MetaType,
+}
+
+#[impl_for_tuples(1, 12)]
+impl TransactionExtensionBase for Tuple {
+	for_tuples!( where #( Tuple: TransactionExtensionBase )* );
+	const IDENTIFIER: &'static str = "Use `metadata()`!";
+	for_tuples!( type Implicit = ( #( Tuple::Implicit ),* ); );
+	fn implicit(&self) -> Result<Self::Implicit, TransactionValidityError> {
+		Ok(for_tuples!( ( #( Tuple.implicit()? ),* ) ))
+	}
+	fn weight(&self) -> Weight {
+		let mut weight = Weight::zero();
+		for_tuples!( #( weight += Tuple.weight(); )* );
+		weight
+	}
+	fn metadata() -> Vec<TransactionExtensionMetadata> {
+		let mut ids = Vec::new();
+		for_tuples!( #( ids.extend(Tuple::metadata()); )* );
+		ids
+	}
+}
+
+#[impl_for_tuples(1, 12)]
+impl<Call: Dispatchable, Context> TransactionExtension<Call, Context> for Tuple {
+	for_tuples!( where #( Tuple: TransactionExtension<Call, Context> )* );
+	for_tuples!( type Val = ( #( Tuple::Val ),* ); );
+	for_tuples!( type Pre = ( #( Tuple::Pre ),* ); );
+
+	fn validate(
+		&self,
+		origin: <Call as Dispatchable>::RuntimeOrigin,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+		context: &mut Context,
+		self_implicit: Self::Implicit,
+		inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <Call as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
+		let valid = ValidTransaction::default();
+		let val = ();
+		let following_explicit_implications = for_tuples!( ( #( &self.Tuple ),* ) );
+		let following_implicit_implications = self_implicit;
+
+		for_tuples!(#(
+			// Implication of this pipeline element not relevant for later items, so we pop it.
+			let (_item, following_explicit_implications) = following_explicit_implications.pop_front();
+			let (item_implicit, following_implicit_implications) = following_implicit_implications.pop_front();
+			let (item_valid, item_val, origin) = {
+				let implications = (
+					// The first is the implications born of the fact we return the mutated
+					// origin.
+					inherited_implication,
+					// This is the explicitly made implication born of the fact the new origin is
+					// passed into the next items in this pipeline-tuple.
+					&following_explicit_implications,
+					// This is the implicitly made implication born of the fact the new origin is
+					// passed into the next items in this pipeline-tuple.
+					&following_implicit_implications,
+				);
+				Tuple.validate(origin, call, info, len, context, item_implicit, &implications)?
+			};
+			let valid = valid.combine_with(item_valid);
+			let val = val.push_back(item_val);
+		)* );
+		Ok((valid, val, origin))
+	}
+
+	fn prepare(
+		self,
+		val: Self::Val,
+		origin: &<Call as Dispatchable>::RuntimeOrigin,
+		call: &Call,
+		info: &DispatchInfoOf<Call>,
+		len: usize,
+		context: &Context,
+	) -> Result<Self::Pre, TransactionValidityError> {
+		Ok(for_tuples!( ( #(
+			Tuple::prepare(self.Tuple, val.Tuple, origin, call, info, len, context)?
+		),* ) ))
+	}
+
+	fn post_dispatch(
+		pre: Self::Pre,
+		info: &DispatchInfoOf<Call>,
+		post_info: &PostDispatchInfoOf<Call>,
+		len: usize,
+		result: &DispatchResult,
+		context: &Context,
+	) -> Result<(), TransactionValidityError> {
+		for_tuples!( #( Tuple::post_dispatch(pre.Tuple, info, post_info, len, result, context)?; )* );
+		Ok(())
+	}
+}
+
+impl TransactionExtensionBase for () {
+	const IDENTIFIER: &'static str = "UnitTransactionExtension";
+	type Implicit = ();
+	fn implicit(&self) -> sp_std::result::Result<Self::Implicit, TransactionValidityError> {
+		Ok(())
+	}
+	fn weight(&self) -> Weight {
+		Weight::zero()
+	}
+}
+
+impl<Call: Dispatchable, Context> TransactionExtension<Call, Context> for () {
+	type Val = ();
+	type Pre = ();
+	fn validate(
+		&self,
+		origin: <Call as Dispatchable>::RuntimeOrigin,
+		_call: &Call,
+		_info: &DispatchInfoOf<Call>,
+		_len: usize,
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, (), <Call as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
+		Ok((ValidTransaction::default(), (), origin))
+	}
+	fn prepare(
+		self,
+		_val: (),
+		_origin: &<Call as Dispatchable>::RuntimeOrigin,
+		_call: &Call,
+		_info: &DispatchInfoOf<Call>,
+		_len: usize,
+		_context: &Context,
+	) -> Result<(), TransactionValidityError> {
+		Ok(())
+	}
+}
diff --git a/substrate/primitives/runtime/src/transaction_validity.rs b/substrate/primitives/runtime/src/transaction_validity.rs
index 83694849382..24124128083 100644
--- a/substrate/primitives/runtime/src/transaction_validity.rs
+++ b/substrate/primitives/runtime/src/transaction_validity.rs
@@ -82,6 +82,8 @@ pub enum InvalidTransaction {
 	MandatoryValidation,
 	/// The sending address is disabled or known to be invalid.
 	BadSigner,
+	/// The implicit data was unable to be calculated.
+	IndeterminateImplicit,
 }
 
 impl InvalidTransaction {
@@ -113,6 +115,8 @@ impl From<InvalidTransaction> for &'static str {
 				"Transaction dispatch is mandatory; transactions must not be validated.",
 			InvalidTransaction::Custom(_) => "InvalidTransaction custom error",
 			InvalidTransaction::BadSigner => "Invalid signing address",
+			InvalidTransaction::IndeterminateImplicit =>
+				"The implicit data was unable to be calculated",
 		}
 	}
 }
@@ -338,7 +342,7 @@ pub struct ValidTransactionBuilder {
 impl ValidTransactionBuilder {
 	/// Set the priority of a transaction.
 	///
-	/// Note that the final priority for `FRAME` is combined from all `SignedExtension`s.
+	/// Note that the final priority for `FRAME` is combined from all `TransactionExtension`s.
 	/// Most likely for unsigned transactions you want the priority to be higher
 	/// than for regular transactions. We recommend exposing a base priority for unsigned
 	/// transactions as a runtime module parameter, so that the runtime can tune inter-module
diff --git a/substrate/scripts/run_all_benchmarks.sh b/substrate/scripts/run_all_benchmarks.sh
index 6dd7cede319..fe5f89a5b56 100755
--- a/substrate/scripts/run_all_benchmarks.sh
+++ b/substrate/scripts/run_all_benchmarks.sh
@@ -107,6 +107,19 @@ for PALLET in "${PALLETS[@]}"; do
 
   FOLDER="$(echo "${PALLET#*_}" | tr '_' '-')";
   WEIGHT_FILE="./frame/${FOLDER}/src/weights.rs"
+
+  # Special handling of custom weight paths.
+  if [ "$PALLET" == "frame_system_extensions" ] || [ "$PALLET" == "frame-system-extensions" ]
+  then
+    WEIGHT_FILE="./frame/system/src/extensions/weights.rs"
+  elif [ "$PALLET" == "pallet_asset_conversion_tx_payment" ] || [ "$PALLET" == "pallet-asset-conversion-tx-payment" ]
+  then
+    WEIGHT_FILE="./frame/transaction-payment/asset-conversion-tx-payment/src/weights.rs"
+  elif [ "$PALLET" == "pallet_asset_tx_payment" ] || [ "$PALLET" == "pallet-asset-tx-payment" ]
+  then
+    WEIGHT_FILE="./frame/transaction-payment/asset-tx-payment/src/weights.rs"
+  fi
+
   echo "[+] Benchmarking $PALLET with weight file $WEIGHT_FILE";
 
   OUTPUT=$(
diff --git a/substrate/test-utils/runtime/src/extrinsic.rs b/substrate/test-utils/runtime/src/extrinsic.rs
index 05ffb7db5d5..7eb1839e97b 100644
--- a/substrate/test-utils/runtime/src/extrinsic.rs
+++ b/substrate/test-utils/runtime/src/extrinsic.rs
@@ -25,7 +25,7 @@ use codec::Encode;
 use frame_system::{CheckNonce, CheckWeight};
 use sp_core::crypto::Pair as TraitPair;
 use sp_keyring::AccountKeyring;
-use sp_runtime::{transaction_validity::TransactionPriority, Perbill};
+use sp_runtime::{generic::Preamble, transaction_validity::TransactionPriority, Perbill};
 use sp_std::prelude::*;
 
 /// Transfer used in test substrate pallet. Extrinsic is created and signed using this data.
@@ -66,11 +66,11 @@ impl TryFrom<&Extrinsic> for TransferData {
 		match uxt {
 			Extrinsic {
 				function: RuntimeCall::Balances(BalancesCall::transfer_allow_death { dest, value }),
-				signature: Some((from, _, (CheckNonce(nonce), ..))),
+				preamble: Preamble::Signed(from, _, ((CheckNonce(nonce), ..), ..)),
 			} => Ok(TransferData { from: *from, to: *dest, amount: *value, nonce: *nonce }),
 			Extrinsic {
 				function: RuntimeCall::SubstrateTest(PalletCall::bench_call { transfer }),
-				signature: None,
+				preamble: Preamble::Bare,
 			} => Ok(transfer.clone()),
 			_ => Err(()),
 		}
@@ -190,18 +190,17 @@ impl ExtrinsicBuilder {
 	/// Build `Extrinsic` using embedded parameters
 	pub fn build(self) -> Extrinsic {
 		if let Some(signer) = self.signer {
-			let extra = (
-				CheckNonce::from(self.nonce.unwrap_or(0)),
-				CheckWeight::new(),
+			let tx_ext = (
+				(CheckNonce::from(self.nonce.unwrap_or(0)), CheckWeight::new()),
 				CheckSubstrateCall {},
 			);
 			let raw_payload =
-				SignedPayload::from_raw(self.function.clone(), extra.clone(), ((), (), ()));
+				SignedPayload::from_raw(self.function.clone(), tx_ext.clone(), (((), ()), ()));
 			let signature = raw_payload.using_encoded(|e| signer.sign(e));
 
-			Extrinsic::new_signed(self.function, signer.public(), signature, extra)
+			Extrinsic::new_signed(self.function, signer.public(), signature, tx_ext)
 		} else {
-			Extrinsic::new_unsigned(self.function)
+			Extrinsic::new_bare(self.function)
 		}
 	}
 }
diff --git a/substrate/test-utils/runtime/src/lib.rs b/substrate/test-utils/runtime/src/lib.rs
index 63e0aa6e137..7ec5f6722c4 100644
--- a/substrate/test-utils/runtime/src/lib.rs
+++ b/substrate/test-utils/runtime/src/lib.rs
@@ -58,9 +58,11 @@ use sp_api::{decl_runtime_apis, impl_runtime_apis};
 pub use sp_core::hash::H256;
 use sp_inherents::{CheckInherentsResult, InherentData};
 use sp_runtime::{
-	create_runtime_str, impl_opaque_keys,
-	traits::{BlakeTwo256, Block as BlockT, DispatchInfoOf, NumberFor, Verify},
-	transaction_validity::{TransactionSource, TransactionValidity, TransactionValidityError},
+	create_runtime_str, impl_opaque_keys, impl_tx_ext_default,
+	traits::{BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, NumberFor, Verify},
+	transaction_validity::{
+		TransactionSource, TransactionValidity, TransactionValidityError, ValidTransaction,
+	},
 	ApplyExtrinsicResult, ExtrinsicInclusionMode, Perbill,
 };
 #[cfg(any(feature = "std", test))]
@@ -142,13 +144,14 @@ pub type Signature = sr25519::Signature;
 #[cfg(feature = "std")]
 pub type Pair = sp_core::sr25519::Pair;
 
-/// The SignedExtension to the basic transaction logic.
-pub type SignedExtra = (CheckNonce<Runtime>, CheckWeight<Runtime>, CheckSubstrateCall);
+// TODO: Remove after the Checks are migrated to TxExtension.
+/// The extension to the basic transaction logic.
+pub type TxExtension = ((CheckNonce<Runtime>, CheckWeight<Runtime>), CheckSubstrateCall);
 /// The payload being signed in transactions.
-pub type SignedPayload = sp_runtime::generic::SignedPayload<RuntimeCall, SignedExtra>;
+pub type SignedPayload = sp_runtime::generic::SignedPayload<RuntimeCall, TxExtension>;
 /// Unchecked extrinsic type as expected by this runtime.
 pub type Extrinsic =
-	sp_runtime::generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
+	sp_runtime::generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
 
 /// An identifier for an account on this system.
 pub type AccountId = <Signature as Verify>::Signer;
@@ -243,7 +246,7 @@ impl sp_runtime::traits::Printable for CheckSubstrateCall {
 }
 
 impl sp_runtime::traits::Dispatchable for CheckSubstrateCall {
-	type RuntimeOrigin = CheckSubstrateCall;
+	type RuntimeOrigin = RuntimeOrigin;
 	type Config = CheckSubstrateCall;
 	type Info = CheckSubstrateCall;
 	type PostInfo = CheckSubstrateCall;
@@ -256,42 +259,37 @@ impl sp_runtime::traits::Dispatchable for CheckSubstrateCall {
 	}
 }
 
-impl sp_runtime::traits::SignedExtension for CheckSubstrateCall {
-	type AccountId = AccountId;
-	type Call = RuntimeCall;
-	type AdditionalSigned = ();
-	type Pre = ();
+impl sp_runtime::traits::TransactionExtensionBase for CheckSubstrateCall {
 	const IDENTIFIER: &'static str = "CheckSubstrateCall";
-
-	fn additional_signed(
-		&self,
-	) -> sp_std::result::Result<Self::AdditionalSigned, TransactionValidityError> {
-		Ok(())
-	}
+	type Implicit = ();
+}
+impl<Context> sp_runtime::traits::TransactionExtension<RuntimeCall, Context>
+	for CheckSubstrateCall
+{
+	type Pre = ();
+	type Val = ();
+	impl_tx_ext_default!(RuntimeCall; Context; prepare);
 
 	fn validate(
 		&self,
-		_who: &Self::AccountId,
-		call: &Self::Call,
-		_info: &DispatchInfoOf<Self::Call>,
+		origin: <RuntimeCall as Dispatchable>::RuntimeOrigin,
+		call: &RuntimeCall,
+		_info: &DispatchInfoOf<RuntimeCall>,
 		_len: usize,
-	) -> TransactionValidity {
+		_context: &mut Context,
+		_self_implicit: Self::Implicit,
+		_inherited_implication: &impl Encode,
+	) -> Result<
+		(ValidTransaction, Self::Val, <RuntimeCall as Dispatchable>::RuntimeOrigin),
+		TransactionValidityError,
+	> {
 		log::trace!(target: LOG_TARGET, "validate");
-		match call {
+		let v = match call {
 			RuntimeCall::SubstrateTest(ref substrate_test_call) =>
-				substrate_test_pallet::validate_runtime_call(substrate_test_call),
-			_ => Ok(Default::default()),
-		}
-	}
-
-	fn pre_dispatch(
-		self,
-		who: &Self::AccountId,
-		call: &Self::Call,
-		info: &sp_runtime::traits::DispatchInfoOf<Self::Call>,
-		len: usize,
-	) -> Result<Self::Pre, TransactionValidityError> {
-		self.validate(who, call, info, len).map(drop)
+				substrate_test_pallet::validate_runtime_call(substrate_test_call)?,
+			_ => Default::default(),
+		};
+		Ok((v, (), origin))
 	}
 }
 
@@ -364,6 +362,7 @@ impl frame_system::pallet::Config for Runtime {
 	type OnNewAccount = ();
 	type OnKilledAccount = ();
 	type SystemWeightInfo = ();
+	type ExtensionsWeightInfo = ();
 	type SS58Prefix = ();
 	type OnSetCode = ();
 	type MaxConsumers = ConstU32<16>;
@@ -672,7 +671,7 @@ impl_runtime_apis! {
 
 	impl sp_offchain::OffchainWorkerApi<Block> for Runtime {
 		fn offchain_worker(header: &<Block as BlockT>::Header) {
-			let ext = Extrinsic::new_unsigned(
+			let ext = Extrinsic::new_bare(
 				substrate_test_pallet::pallet::Call::storage_change{
 					key:b"some_key".encode(),
 					value:Some(header.number.encode())
@@ -1025,7 +1024,7 @@ mod tests {
 	use sp_core::{storage::well_known_keys::HEAP_PAGES, traits::CallContext};
 	use sp_keyring::AccountKeyring;
 	use sp_runtime::{
-		traits::{Hash as _, SignedExtension},
+		traits::{DispatchTransaction, Hash as _},
 		transaction_validity::{InvalidTransaction, ValidTransaction},
 	};
 	use substrate_test_runtime_client::{
@@ -1174,31 +1173,33 @@ mod tests {
 	fn check_substrate_check_signed_extension_works() {
 		sp_tracing::try_init_simple();
 		new_test_ext().execute_with(|| {
-			let x = sp_keyring::AccountKeyring::Alice.into();
+			let x: AccountId = sp_keyring::AccountKeyring::Alice.into();
 			let info = DispatchInfo::default();
 			let len = 0_usize;
 			assert_eq!(
 				CheckSubstrateCall {}
-					.validate(
-						&x,
+					.validate_only(
+						Some(x).into(),
 						&ExtrinsicBuilder::new_call_with_priority(16).build().function,
 						&info,
-						len
+						len,
 					)
 					.unwrap()
+					.0
 					.priority,
 				16
 			);
 
 			assert_eq!(
 				CheckSubstrateCall {}
-					.validate(
-						&x,
+					.validate_only(
+						Some(x).into(),
 						&ExtrinsicBuilder::new_call_do_not_propagate().build().function,
 						&info,
-						len
+						len,
 					)
 					.unwrap()
+					.0
 					.propagate,
 				false
 			);
diff --git a/substrate/utils/frame/benchmarking-cli/src/pallet/template.hbs b/substrate/utils/frame/benchmarking-cli/src/pallet/template.hbs
index 1e5e294acba..a044049a0d6 100644
--- a/substrate/utils/frame/benchmarking-cli/src/pallet/template.hbs
+++ b/substrate/utils/frame/benchmarking-cli/src/pallet/template.hbs
@@ -22,7 +22,11 @@ use core::marker::PhantomData;
 
 /// Weight functions for `{{pallet}}`.
 pub struct WeightInfo<T>(PhantomData<T>);
+{{#if (eq pallet "frame_system_extensions")}}
+impl<T: frame_system::Config> frame_system::ExtensionsWeightInfo for WeightInfo<T> {
+{{else}}
 impl<T: frame_system::Config> {{pallet}}::WeightInfo for WeightInfo<T> {
+{{/if}}
 	{{#each benchmarks as |benchmark|}}
 	{{#each benchmark.comments as |comment|}}
 	/// {{comment}}
diff --git a/substrate/utils/frame/remote-externalities/src/lib.rs b/substrate/utils/frame/remote-externalities/src/lib.rs
index c7399468da9..d49479d9cda 100644
--- a/substrate/utils/frame/remote-externalities/src/lib.rs
+++ b/substrate/utils/frame/remote-externalities/src/lib.rs
@@ -1204,8 +1204,9 @@ where
 #[cfg(test)]
 mod test_prelude {
 	pub(crate) use super::*;
-	pub(crate) use sp_runtime::testing::{Block as RawBlock, ExtrinsicWrapper, H256 as Hash};
-	pub(crate) type Block = RawBlock<ExtrinsicWrapper<Hash>>;
+	pub(crate) use sp_runtime::testing::{Block as RawBlock, MockCallU64};
+	pub(crate) type UncheckedXt = sp_runtime::generic::UncheckedExtrinsic<u64, MockCallU64, (), ()>;
+	pub(crate) type Block = RawBlock<UncheckedXt>;
 
 	pub(crate) fn init_logger() {
 		sp_tracing::try_init_simple();
diff --git a/substrate/utils/frame/rpc/client/src/lib.rs b/substrate/utils/frame/rpc/client/src/lib.rs
index 221f260b156..4f4f4bbef56 100644
--- a/substrate/utils/frame/rpc/client/src/lib.rs
+++ b/substrate/utils/frame/rpc/client/src/lib.rs
@@ -199,11 +199,15 @@ where
 #[cfg(test)]
 mod tests {
 	use super::*;
-	use sp_runtime::testing::{Block as TBlock, ExtrinsicWrapper, Header, H256};
+	use sp_runtime::{
+		generic::UncheckedExtrinsic,
+		testing::{Block as TBlock, Header, MockCallU64, H256},
+	};
 	use std::sync::Arc;
 	use tokio::sync::Mutex;
 
-	type Block = TBlock<ExtrinsicWrapper<()>>;
+	type UncheckedXt = UncheckedExtrinsic<u64, MockCallU64, (), ()>;
+	type Block = TBlock<UncheckedXt>;
 	type BlockNumber = u64;
 	type Hash = H256;
 
-- 
GitLab