From ec57c9326dfa11471da643f824db52ce5f398224 Mon Sep 17 00:00:00 2001
From: Benjamin Gallois <business@gallois.cc>
Date: Tue, 16 Jan 2024 12:41:58 +0100
Subject: [PATCH] Weight to fee conversion (nodes/rust/duniter-v2s!227)

* fix chain spec

* fix automatic weights documentation

* fix weights include

* regenerate weights

* refactor cargo alias with constant-fees feature

* add constant fee model for testing

* regenerate weights

* fix benchmark with non constant fees

* fix weight to fee factor

* prepare length to fee logic

* prepare weight to fee logic
---
 .cargo/config                                 |   9 +-
 .gitlab-ci.yml                                |   3 +-
 Cargo.toml                                    |   1 +
 distance-oracle/src/api.rs                    |   2 +-
 docker/Dockerfile                             |   4 +-
 docs/api/runtime-calls.md                     | 374 ++++++++----------
 docs/api/runtime-errors.md                    | 321 ++++++---------
 docs/api/runtime-events.md                    | 176 ++++-----
 .../identity_creation.feature                 |   4 +-
 .../cucumber-features/oneshot_account.feature |   4 +-
 end2end-tests/tests/common/cert.rs            |   4 +-
 end2end-tests/tests/cucumber_tests.rs         |   6 +-
 node/src/chain_spec/gdev.rs                   |   9 +-
 node/src/chain_spec/gen_genesis_data.rs       |   6 +-
 node/src/chain_spec/gtest.rs                  |   8 +-
 resources/metadata.scale                      | Bin 129512 -> 129557 bytes
 runtime/common/Cargo.toml                     |   1 +
 runtime/common/src/fees.rs                    |  53 ++-
 runtime/common/src/pallets_config.rs          |   7 +-
 runtime/common/src/weights.rs                 |   4 +-
 runtime/common/src/weights/block_weights.rs   |  18 +-
 .../common/src/weights/extrinsic_weights.rs   |  18 +-
 .../weights/frame_benchmarking_baseline.rs    |  34 +-
 runtime/common/src/weights/frame_system.rs    |  52 +--
 .../src/weights/pallet_authority_members.rs   |  92 ++---
 runtime/common/src/weights/pallet_balances.rs |  34 +-
 ...cation_cert.rs => pallet_certification.rs} |  59 ++-
 .../common/src/weights/pallet_collective.rs   | 186 ++++-----
 runtime/common/src/weights/pallet_distance.rs |  58 +--
 .../src/weights/pallet_duniter_account.rs     |  42 +-
 runtime/common/src/weights/pallet_identity.rs | 156 ++++----
 .../common/src/weights/pallet_im_online.rs    |  20 +-
 ...hip_membership.rs => pallet_membership.rs} |  99 +++--
 runtime/common/src/weights/pallet_multisig.rs |  74 ++--
 .../src/weights/pallet_oneshot_account.rs     |  18 +-
 runtime/common/src/weights/pallet_preimage.rs |  66 ++--
 .../src/weights/pallet_provide_randomness.rs  |  26 +-
 runtime/common/src/weights/pallet_proxy.rs    | 102 ++---
 runtime/common/src/weights/pallet_quota.rs    |  34 +-
 .../common/src/weights/pallet_scheduler.rs    |  78 ++--
 runtime/common/src/weights/pallet_session.rs  |  26 +-
 .../src/weights/pallet_smith_members.rs       |  20 +-
 .../common/src/weights/pallet_timestamp.rs    |  22 +-
 runtime/common/src/weights/pallet_treasury.rs |  38 +-
 .../src/weights/pallet_universal_dividend.rs  |  30 +-
 .../src/weights/pallet_upgrade_origin.rs      |   8 +-
 runtime/common/src/weights/pallet_utility.rs  |  38 +-
 runtime/g1/src/lib.rs                         |   6 +-
 runtime/gdev/src/lib.rs                       |   6 +-
 runtime/gdev/tests/common/mod.rs              |   2 +-
 runtime/gdev/tests/fixme_tests.rs             |   2 +-
 runtime/gdev/tests/integration_tests.rs       |   8 +-
 runtime/gtest/src/lib.rs                      |   6 +-
 xtask/src/gen_doc.rs                          |  16 -
 54 files changed, 1190 insertions(+), 1300 deletions(-)
 rename runtime/common/src/weights/{pallet_certification_cert.rs => pallet_certification.rs} (82%)
 rename runtime/common/src/weights/{pallet_membership_membership.rs => pallet_membership.rs} (64%)

diff --git a/.cargo/config b/.cargo/config
index ef833ed6b..f332af474 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -1,11 +1,12 @@
 [alias]
 sanity-gdev = "test -p duniter-live-tests --test sanity_gdev -- --nocapture"
-tu = "test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests"
+tu = "test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests --features constant-fees"
 # `te` and `cucumber` are synonyms
-te = "test -p duniter-end2end-tests --test cucumber_tests --"
+te = "test -p duniter-end2end-tests --test cucumber_tests --features constant-fees --"
+cucumber-build = "build --features constant-fees"
 cucumber = "test -p duniter-end2end-tests --test cucumber_tests --"
-ta = "test --workspace --exclude duniter-live-tests"
+ta = "test --workspace --exclude duniter-live-tests --features constant-fees"
 tb = "test --features runtime-benchmarks -p"
 rbp = "run --release --features runtime-benchmarks -- benchmark pallet --chain=dev --steps=50 --repeat=20 --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=. --pallet"
 xtask = "run --package xtask --"
-cucumber-node = "run -- --chain=gdev_dev --execution=Native --sealing=manual --force-authoring --rpc-cors=all --tmp --ws-port 9944 --alice"
+cucumber-node = "run -- --chain=gdev_dev --execution=Native --sealing=manual --force-authoring --rpc-cors=all --tmp --ws-port 9944 --alice --features constant-fees"
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 327707ff9..8135281dc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -131,9 +131,8 @@ tests:
   script:
     - apt-get update
     - apt-get install -y clang cmake protobuf-compiler
-    # cargo build is required for cucumber tests anyway
-    - cargo build
     - cargo tu
+    - cargo cucumber-build
     - cargo cucumber
 
 .deploy_docker_multiplatform:
diff --git a/Cargo.toml b/Cargo.toml
index 362749c15..53abd0ce4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,6 +21,7 @@ path = "node/src/main.rs"
 default = ["gdev", "distance-oracle"]
 gdev = ["gdev-runtime"] # gdev feature enables gdev runtime and gdev command line options
 g1 = ["g1-runtime"]
+constant-fees = ["common-runtime/constant-fees"] # Activate constant fees model, 1 extrinsic = 2 cG
 gtest = ["gtest-runtime"]
 embed = [] # embed feature enables embedding raw chainspecs that must be in ./specs/gdev-raw.json
 runtime-benchmarks = [
diff --git a/distance-oracle/src/api.rs b/distance-oracle/src/api.rs
index 14e67b710..6af754679 100644
--- a/distance-oracle/src/api.rs
+++ b/distance-oracle/src/api.rs
@@ -122,7 +122,7 @@ pub async fn cert_iter(client: &Client, evaluation_block: H256) -> CertIter {
         client
             .storage()
             .at(evaluation_block)
-            .iter(runtime::storage().cert().certs_by_receiver(0), 100)
+            .iter(runtime::storage().certification().certs_by_receiver(0), 100)
             .await
             .expect("Cannot fetch certifications"),
     )
diff --git a/docker/Dockerfile b/docker/Dockerfile
index aa49422db..70d51ae6f 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -59,11 +59,11 @@ RUN set -x && \
     mv target/$RUST_ARCH_TRIPLET/$TARGET_FOLDER/duniter build/ && \
     mv target/$RUST_ARCH_TRIPLET/$TARGET_FOLDER/distance-oracle build/
 
-# Run tests if requested, expted when cross-building
+# Run tests if requested, except when cross-building
 ARG cucumber=0
 RUN if [ "$cucumber" != 0 ] && [ "$TARGETPLATFORM" = "$BUILDPLATFORM" ]; then \
         cargo ta && \
-        cargo test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests --features runtime-benchmarks \
+        cargo test --workspace --exclude duniter-end2end-tests --exclude duniter-live-tests --features=runtime-benchmarks,constant-fees \
         cd target/debug/deps/ && \
         rm cucumber_tests-*.d && \
         mv cucumber_tests* ../../../build/duniter-cucumber; \
diff --git a/docs/api/runtime-calls.md b/docs/api/runtime-calls.md
index 1818c833c..033203a40 100644
--- a/docs/api/runtime-calls.md
+++ b/docs/api/runtime-calls.md
@@ -13,7 +13,7 @@ through on-chain governance mechanisms.
 
 ## User calls
 
-There are **78** user calls from **23** pallets.
+There are **79** user calls from **22** pallets.
 
 ### Account - 1
 
@@ -21,7 +21,7 @@ There are **78** user calls from **23** pallets.
 
 <details><summary><code>unlink_identity()</code></summary>
 
-Taking 0.0069 % of a block.
+Taking 0.0076 % of a block.
 
 ```rust
 ```
@@ -36,7 +36,7 @@ unlink the identity associated with the account
 
 <details><summary><code>schedule(when, maybe_periodic, priority, call)</code></summary>
 
-Taking 0.0083 % of a block.
+Taking 0.0088 % of a block.
 
 ```rust
 when: T::BlockNumber
@@ -53,7 +53,7 @@ Anonymously schedule a task.
 
 <details><summary><code>cancel(when, index)</code></summary>
 
-Taking 0.0115 % of a block.
+Taking 0.0118 % of a block.
 
 ```rust
 when: T::BlockNumber
@@ -68,7 +68,7 @@ Cancel an anonymously scheduled task.
 
 <details><summary><code>schedule_named(id, when, maybe_periodic, priority, call)</code></summary>
 
-Taking 0.0115 % of a block.
+Taking 0.012 % of a block.
 
 ```rust
 id: TaskName
@@ -86,7 +86,7 @@ Schedule a named task.
 
 <details><summary><code>cancel_named(id)</code></summary>
 
-Taking 0.012 % of a block.
+Taking 0.0123 % of a block.
 
 ```rust
 id: TaskName
@@ -157,7 +157,7 @@ be reported.
 
 <details><summary><code>transfer_allow_death(dest, value)</code></summary>
 
-Taking 0.0121 % of a block.
+Taking 0.0129 % of a block.
 
 ```rust
 dest: AccountIdLookupOf<T>
@@ -199,7 +199,7 @@ WARNING: This call is DEPRECATED! Use `force_set_balance` instead.
 
 <details><summary><code>transfer_keep_alive(dest, value)</code></summary>
 
-Taking 0.0112 % of a block.
+Taking 0.0119 % of a block.
 
 ```rust
 dest: AccountIdLookupOf<T>
@@ -219,7 +219,7 @@ kill the origin account.
 
 <details><summary><code>transfer_all(dest, keep_alive)</code></summary>
 
-Taking 0.0117 % of a block.
+Taking 0.0122 % of a block.
 
 ```rust
 dest: AccountIdLookupOf<T>
@@ -284,7 +284,7 @@ The dispatch origin for this call is `root`.
 
 <details><summary><code>create_oneshot_account(dest, value)</code></summary>
 
-Taking 0.0078 % of a block.
+Taking 0.0084 % of a block.
 
 ```rust
 dest: <T::Lookup as StaticLookup>::Source
@@ -304,7 +304,7 @@ Origin account is kept alive.
 
 <details><summary><code>consume_oneshot_account(block_height, dest)</code></summary>
 
-Taking 0.0114 % of a block.
+Taking 0.012 % of a block.
 
 ```rust
 block_height: T::BlockNumber
@@ -323,7 +323,7 @@ Consume a oneshot account and transfer its balance to an account
 
 <details><summary><code>consume_oneshot_account_with_remaining(block_height, dest, remaining_to, balance)</code></summary>
 
-Taking 0.0149 % of a block.
+Taking 0.0155 % of a block.
 
 ```rust
 block_height: T::BlockNumber
@@ -345,13 +345,56 @@ and the remaining amount to another account.
 - `dest2_is_oneshot`: If set to `true`, then a oneshot account is created at `dest2`. Else, `dest2` has to be an existing account.
 - `balance1`: The amount transfered to `dest`, the leftover being transfered to `dest2`.
 
-### AuthorityMembers - 10
+### SmithMembers - 10
+
+#### invite_smith - 0
+
+<details><summary><code>invite_smith(receiver)</code></summary>
+
+Taking 0.0136 % of a block.
+
+```rust
+receiver: T::IdtyIndex
+```
+</details>
+
+
+
+
+#### accept_invitation - 1
+
+<details><summary><code>accept_invitation()</code></summary>
+
+Taking 0.0085 % of a block.
+
+```rust
+```
+</details>
+
+
+
+
+#### certify_smith - 2
+
+<details><summary><code>certify_smith(receiver)</code></summary>
+
+Taking 0.0126 % of a block.
+
+```rust
+receiver: T::IdtyIndex
+```
+</details>
+
+
+
+
+### AuthorityMembers - 11
 
 #### go_offline - 0
 
 <details><summary><code>go_offline()</code></summary>
 
-Taking 0.0127 % of a block.
+Taking 0.0103 % of a block.
 
 ```rust
 ```
@@ -364,7 +407,7 @@ ask to leave the set of validators two sessions after
 
 <details><summary><code>go_online()</code></summary>
 
-Taking 0.0141 % of a block.
+Taking 0.0114 % of a block.
 
 ```rust
 ```
@@ -377,7 +420,7 @@ ask to join the set of validators two sessions after
 
 <details><summary><code>set_session_keys(keys)</code></summary>
 
-Taking 0.0136 % of a block.
+Taking 0.0142 % of a block.
 
 ```rust
 keys: T::Keys
@@ -391,7 +434,7 @@ declare new session keys to replace current ones
 
 <details><summary><code>remove_member_from_blacklist(member_id)</code></summary>
 
-Taking 0.0073 % of a block.
+Taking 0.0079 % of a block.
 
 ```rust
 member_id: T::MemberId
@@ -401,7 +444,7 @@ member_id: T::MemberId
 
 remove an identity from the blacklist
 
-### Grandpa - 15
+### Grandpa - 16
 
 #### report_equivocation - 0
 
@@ -448,7 +491,7 @@ The weight of this call is defined by the caller.
 
 <details><summary><code>note_preimage(bytes)</code></summary>
 
-Taking 0.3001 % of a block.
+Taking 0.2804 % of a block.
 
 ```rust
 bytes: Vec<u8>
@@ -484,7 +527,7 @@ If `len` is provided, then it will be a much cheaper operation.
 
 <details><summary><code>request_preimage(hash)</code></summary>
 
-Taking 0.0083 % of a block.
+Taking 0.0085 % of a block.
 
 ```rust
 hash: T::Hash
@@ -501,7 +544,7 @@ a user may have paid, and take the control of the preimage out of their hands.
 
 <details><summary><code>unrequest_preimage(hash)</code></summary>
 
-Taking 0.0109 % of a block.
+Taking 0.0112 % of a block.
 
 ```rust
 hash: T::Hash
@@ -519,7 +562,7 @@ NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`.
 
 <details><summary><code>execute(proposal, length_bound)</code></summary>
 
-Taking 0.0049 % of a block.
+Taking 0.0056 % of a block.
 
 ```rust
 proposal: Box<<T as Config<I>>::Proposal>
@@ -571,7 +614,7 @@ or put up for voting.
 
 <details><summary><code>vote(proposal, index, approve)</code></summary>
 
-Taking 0.0082 % of a block.
+Taking 0.0088 % of a block.
 
 ```rust
 proposal: T::Hash
@@ -637,7 +680,7 @@ proposal.
 
 <details><summary><code>claim_uds()</code></summary>
 
-Taking 0.0124 % of a block.
+Taking 0.0131 % of a block.
 
 ```rust
 ```
@@ -650,7 +693,7 @@ Claim Universal Dividends
 
 <details><summary><code>transfer_ud(dest, value)</code></summary>
 
-Taking 0.0128 % of a block.
+Taking 0.0134 % of a block.
 
 ```rust
 dest: <T::Lookup as StaticLookup>::Source
@@ -665,7 +708,7 @@ Transfer some liquid free balance to another account, in milliUD.
 
 <details><summary><code>transfer_ud_keep_alive(dest, value)</code></summary>
 
-Taking 0.0118 % of a block.
+Taking 0.0125 % of a block.
 
 ```rust
 dest: <T::Lookup as StaticLookup>::Source
@@ -682,7 +725,7 @@ Transfer some liquid free balance to another account, in milliUD.
 
 <details><summary><code>create_identity(owner_key)</code></summary>
 
-Taking 0.0446 % of a block.
+Taking 0.0439 % of a block.
 
 ```rust
 owner_key: T::AccountId
@@ -700,7 +743,7 @@ The origin must be allowed to create an identity.
 
 <details><summary><code>confirm_identity(idty_name)</code></summary>
 
-Taking 0.0175 % of a block.
+Taking 0.0181 % of a block.
 
 ```rust
 idty_name: IdtyName
@@ -718,7 +761,7 @@ The identity must have been created using `create_identity` before it can be con
 
 <details><summary><code>change_owner_key(new_key, new_key_sig)</code></summary>
 
-Taking 0.0245 % of a block.
+Taking 0.0238 % of a block.
 
 ```rust
 new_key: T::AccountId
@@ -739,7 +782,7 @@ The origin should be the old identity owner key.
 
 <details><summary><code>revoke_identity(idty_index, revocation_key, revocation_sig)</code></summary>
 
-Taking 0.0255 % of a block.
+Taking 0.0227 % of a block.
 
 ```rust
 idty_index: T::IdtyIndex
@@ -762,7 +805,7 @@ Any signed origin can execute this call.
 
 <details><summary><code>fix_sufficients(owner_key, inc)</code></summary>
 
-Taking 0.0071 % of a block.
+Taking 0.0077 % of a block.
 
 ```rust
 owner_key: T::AccountId
@@ -777,7 +820,7 @@ change sufficient ref count for given key
 
 <details><summary><code>link_account(account_id, payload_sig)</code></summary>
 
-Taking 0.0106 % of a block.
+Taking 0.011 % of a block.
 
 ```rust
 account_id: T::AccountId
@@ -794,7 +837,7 @@ Link an account to an identity
 
 <details><summary><code>claim_membership()</code></summary>
 
-Taking 0.0206 % of a block.
+Taking 0.0213 % of a block.
 
 ```rust
 ```
@@ -810,7 +853,7 @@ for smith wot, it means joining the authority members
 
 <details><summary><code>renew_membership()</code></summary>
 
-Taking 0.0158 % of a block.
+Taking 0.0164 % of a block.
 
 ```rust
 ```
@@ -823,7 +866,7 @@ extend the validity period of an active membership
 
 <details><summary><code>revoke_membership()</code></summary>
 
-Taking 0.0214 % of a block.
+Taking 0.0586 % of a block.
 
 ```rust
 ```
@@ -833,13 +876,13 @@ Taking 0.0214 % of a block.
 revoke an active membership
 (only available for sub wot, automatic for main wot)
 
-### Cert - 43
+### Certification - 43
 
 #### add_cert - 0
 
 <details><summary><code>add_cert(issuer, receiver)</code></summary>
 
-Taking 0.0184 % of a block.
+Taking 0.019 % of a block.
 
 ```rust
 issuer: T::IdtyIndex
@@ -854,13 +897,42 @@ Add a new certification or renew an existing one
 
 The origin must be allow to certify.
 
+#### del_cert - 1
+
+<details><summary><code>del_cert(issuer, receiver)</code></summary>
+
+Taking 0.0153 % of a block.
+
+```rust
+issuer: T::IdtyIndex
+receiver: T::IdtyIndex
+```
+</details>
+
+
+remove a certification (only root)
+
+#### remove_all_certs_received_by - 2
+
+<details><summary><code>remove_all_certs_received_by(idty_index)</code></summary>
+
+Taking 3.5004 % of a block.
+
+```rust
+idty_index: T::IdtyIndex
+```
+</details>
+
+
+remove all certifications received by an identity (only root)
+
 ### Distance - 44
 
 #### request_distance_evaluation - 0
 
 <details><summary><code>request_distance_evaluation()</code></summary>
 
-Taking 0.018 % of a block.
+Taking 0.0187 % of a block.
 
 ```rust
 ```
@@ -873,7 +945,7 @@ Request an identity to be evaluated
 
 <details><summary><code>update_evaluation(computation_result)</code></summary>
 
-Taking 0.0185 % of a block.
+Taking 0.0195 % of a block.
 
 ```rust
 computation_result: ComputationResult
@@ -887,7 +959,7 @@ computation_result: ComputationResult
 
 <details><summary><code>force_update_evaluation(evaluator, computation_result)</code></summary>
 
-Taking 0.0113 % of a block.
+Taking 0.0122 % of a block.
 
 ```rust
 evaluator: <T as frame_system::Config>::AccountId
@@ -902,7 +974,7 @@ Push an evaluation result to the pool
 
 <details><summary><code>force_set_distance_status(identity, status)</code></summary>
 
-Taking 0.0104 % of a block.
+Taking 0.011 % of a block.
 
 ```rust
 identity: <T as pallet_identity::Config>::IdtyIndex
@@ -919,73 +991,7 @@ Removes the status if `status` is `None`.
   when the evaluation completes.
 * `status.1` is the status of the evaluation.
 
-### SmithMembership - 52
-
-#### claim_membership - 1
-
-<details><summary><code>claim_membership()</code></summary>
-
-Taking 0.0152 % of a block.
-
-```rust
-```
-</details>
-
-
-claim membership
-it must fullfill the requirements (certs, distance)
-TODO #159 for main wot claim_membership is called automatically when distance is evaluated positively
-for smith wot, it means joining the authority members
-
-#### renew_membership - 2
-
-<details><summary><code>renew_membership()</code></summary>
-
-Taking 0.0152 % of a block.
-
-```rust
-```
-</details>
-
-
-extend the validity period of an active membership
-
-#### revoke_membership - 3
-
-<details><summary><code>revoke_membership()</code></summary>
-
-Taking 0.0442 % of a block.
-
-```rust
-```
-</details>
-
-
-revoke an active membership
-(only available for sub wot, automatic for main wot)
-
-### SmithCert - 53
-
-#### add_cert - 0
-
-<details><summary><code>add_cert(issuer, receiver)</code></summary>
-
-Taking 0.0187 % of a block.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-```
-</details>
-
-
-Add a new certification or renew an existing one
-
-- `receiver`: the account receiving the certification from the origin
-
-The origin must be allow to certify.
-
-### AtomicSwap - 60
+### AtomicSwap - 50
 
 #### create_swap - 0
 
@@ -1056,13 +1062,13 @@ The dispatch origin for this call must be _Signed_.
 - `target`: Target of the original atomic swap.
 - `hashed_proof`: Hashed proof of the original atomic swap.
 
-### Multisig - 61
+### Multisig - 51
 
 #### as_multi_threshold_1 - 0
 
 <details><summary><code>as_multi_threshold_1(other_signatories, call)</code></summary>
 
-Taking 0.0042 % of a block.
+Taking 0.0049 % of a block.
 
 ```rust
 other_signatories: Vec<T::AccountId>
@@ -1191,7 +1197,7 @@ NOTE: If this is the final approval, you will want to use `as_multi` instead.
 
 <details><summary><code>cancel_as_multi(threshold, other_signatories, timepoint, call_hash)</code></summary>
 
-Taking 0.0082 % of a block.
+Taking 0.0088 % of a block.
 
 ```rust
 threshold: u16
@@ -1224,13 +1230,13 @@ transaction for this dispatch.
 - I/O: 1 read `O(S)`, one remove.
 - Storage: removes one item.
 
-### ProvideRandomness - 62
+### ProvideRandomness - 52
 
 #### request - 0
 
 <details><summary><code>request(randomness_type, salt)</code></summary>
 
-Taking 0.0184 % of a block.
+Taking 0.0191 % of a block.
 
 ```rust
 randomness_type: RandomnessType
@@ -1241,13 +1247,13 @@ salt: H256
 
 Request a randomness
 
-### Proxy - 63
+### Proxy - 53
 
 #### proxy - 0
 
 <details><summary><code>proxy(real, force_proxy_type, call)</code></summary>
 
-Taking 0.0049 % of a block.
+Taking 0.0055 % of a block.
 
 ```rust
 real: AccountIdLookupOf<T>
@@ -1271,7 +1277,7 @@ Parameters:
 
 <details><summary><code>add_proxy(delegate, proxy_type, delay)</code></summary>
 
-Taking 0.0079 % of a block.
+Taking 0.0085 % of a block.
 
 ```rust
 delegate: AccountIdLookupOf<T>
@@ -1295,7 +1301,7 @@ zero.
 
 <details><summary><code>remove_proxy(delegate, proxy_type, delay)</code></summary>
 
-Taking 0.0079 % of a block.
+Taking 0.0085 % of a block.
 
 ```rust
 delegate: AccountIdLookupOf<T>
@@ -1317,7 +1323,7 @@ Parameters:
 
 <details><summary><code>remove_proxies()</code></summary>
 
-Taking 0.0078 % of a block.
+Taking 0.0084 % of a block.
 
 ```rust
 ```
@@ -1335,7 +1341,7 @@ the unreserved fees will be inaccessible. **All access to this account will be l
 
 <details><summary><code>create_pure(proxy_type, delay, index)</code></summary>
 
-Taking 0.0079 % of a block.
+Taking 0.0085 % of a block.
 
 ```rust
 proxy_type: T::ProxyType
@@ -1368,7 +1374,7 @@ Fails if there are insufficient funds to pay for deposit.
 
 <details><summary><code>kill_pure(spawner, proxy_type, index, height, ext_index)</code></summary>
 
-Taking 0.0078 % of a block.
+Taking 0.0084 % of a block.
 
 ```rust
 spawner: AccountIdLookupOf<T>
@@ -1401,7 +1407,7 @@ account whose `pure` call has corresponding parameters.
 
 <details><summary><code>announce(real, call_hash)</code></summary>
 
-Taking 0.0118 % of a block.
+Taking 0.0123 % of a block.
 
 ```rust
 real: AccountIdLookupOf<T>
@@ -1430,7 +1436,7 @@ Parameters:
 
 <details><summary><code>remove_announcement(real, call_hash)</code></summary>
 
-Taking 0.011 % of a block.
+Taking 0.0116 % of a block.
 
 ```rust
 real: AccountIdLookupOf<T>
@@ -1454,7 +1460,7 @@ Parameters:
 
 <details><summary><code>reject_announcement(delegate, call_hash)</code></summary>
 
-Taking 0.011 % of a block.
+Taking 0.0116 % of a block.
 
 ```rust
 delegate: AccountIdLookupOf<T>
@@ -1478,7 +1484,7 @@ Parameters:
 
 <details><summary><code>proxy_announced(delegate, real, force_proxy_type, call)</code></summary>
 
-Taking 0.0119 % of a block.
+Taking 0.0125 % of a block.
 
 ```rust
 delegate: AccountIdLookupOf<T>
@@ -1501,13 +1507,13 @@ Parameters:
 - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
 - `call`: The call to be made by the `real` account.
 
-### Utility - 64
+### Utility - 54
 
 #### batch - 0
 
 <details><summary><code>batch(calls)</code></summary>
 
-Taking 0.2017 % of a block.
+Taking 0.1825 % of a block.
 
 ```rust
 calls: Vec<<T as Config>::RuntimeCall>
@@ -1538,7 +1544,7 @@ event is deposited.
 
 <details><summary><code>as_derivative(index, call)</code></summary>
 
-Taking 0.004 % of a block.
+Taking 0.0046 % of a block.
 
 ```rust
 index: u16
@@ -1565,7 +1571,7 @@ The dispatch origin for this call must be _Signed_.
 
 <details><summary><code>batch_all(calls)</code></summary>
 
-Taking 0.2088 % of a block.
+Taking 0.1899 % of a block.
 
 ```rust
 calls: Vec<<T as Config>::RuntimeCall>
@@ -1591,7 +1597,7 @@ includes bypassing `frame_system::Config::BaseCallFilter`).
 
 <details><summary><code>force_batch(calls)</code></summary>
 
-Taking 0.201 % of a block.
+Taking 0.1833 % of a block.
 
 ```rust
 calls: Vec<<T as Config>::RuntimeCall>
@@ -1633,13 +1639,13 @@ Root origin to specify the weight of the call.
 
 The dispatch origin for this call must be _Root_.
 
-### Treasury - 65
+### Treasury - 55
 
 #### propose_spend - 0
 
 <details><summary><code>propose_spend(value, beneficiary)</code></summary>
 
-Taking 0.0104 % of a block.
+Taking 0.0111 % of a block.
 
 ```rust
 value: BalanceOf<T, I>
@@ -1659,7 +1665,7 @@ proposal is awarded.
 
 <details><summary><code>spend(amount, beneficiary)</code></summary>
 
-Taking 0.0038 % of a block.
+Taking 0.0045 % of a block.
 
 ```rust
 amount: BalanceOf<T, I>
@@ -1681,7 +1687,7 @@ beneficiary.
 
 <details><summary><code>remove_approval(proposal_id)</code></summary>
 
-Taking 0.007 % of a block.
+Taking 0.0077 % of a block.
 
 ```rust
 proposal_id: ProposalIndex
@@ -1707,7 +1713,7 @@ exist altogether, thus there is no way it would have been approved in the first
 
 ## Root calls
 
-There are **19** root calls from **10** pallets.
+There are **15** root calls from **8** pallets.
 
 ### System - 0
 
@@ -1715,7 +1721,7 @@ There are **19** root calls from **10** pallets.
 
 <details><summary><code>set_heap_pages(pages)</code></summary>
 
-Taking 0.0095 % of a block.
+Taking 0.0101 % of a block.
 
 ```rust
 pages: u64
@@ -1763,7 +1769,7 @@ Set the new runtime code without doing any checks of the given `code`.
 
 <details><summary><code>set_storage(items)</code></summary>
 
-Taking 2.6234 % of a block.
+Taking 2.6239 % of a block.
 
 ```rust
 items: Vec<KeyValue>
@@ -1777,7 +1783,7 @@ Set some items of storage.
 
 <details><summary><code>kill_storage(keys)</code></summary>
 
-Taking 2.6154 % of a block.
+Taking 2.6145 % of a block.
 
 ```rust
 keys: Vec<Key>
@@ -1791,7 +1797,7 @@ Kill some items from storage.
 
 <details><summary><code>kill_prefix(prefix, subkeys)</code></summary>
 
-Taking 3.0035 % of a block.
+Taking 3.0011 % of a block.
 
 ```rust
 prefix: Key
@@ -1830,7 +1836,7 @@ not been enacted yet.
 
 <details><summary><code>force_transfer(source, dest, value)</code></summary>
 
-Taking 0.0152 % of a block.
+Taking 0.0157 % of a block.
 
 ```rust
 source: AccountIdLookupOf<T>
@@ -1847,7 +1853,7 @@ may be specified.
 
 <details><summary><code>force_unreserve(who, amount)</code></summary>
 
-Taking 0.0075 % of a block.
+Taking 0.0081 % of a block.
 
 ```rust
 who: AccountIdLookupOf<T>
@@ -1860,13 +1866,13 @@ Unreserve some balance from a user by force.
 
 Can only be called by ROOT.
 
-### AuthorityMembers - 10
+### AuthorityMembers - 11
 
 #### remove_member - 3
 
 <details><summary><code>remove_member(member_id)</code></summary>
 
-Taking 0.0467 % of a block.
+Taking 0.0345 % of a block.
 
 ```rust
 member_id: T::MemberId
@@ -1876,7 +1882,7 @@ member_id: T::MemberId
 
 remove an identity from the set of authorities
 
-### Grandpa - 15
+### Grandpa - 16
 
 #### note_stalled - 2
 
@@ -1910,7 +1916,7 @@ Only callable by root.
 
 <details><summary><code>set_members(new_members, prime, old_count)</code></summary>
 
-Taking 0.0819 % of a block.
+Taking 0.0823 % of a block.
 
 ```rust
 new_members: Vec<T::AccountId>
@@ -1949,7 +1955,7 @@ with other logic managing the member set.
 
 <details><summary><code>disapprove_proposal(proposal_hash)</code></summary>
 
-Taking 0.0128 % of a block.
+Taking 0.0134 % of a block.
 
 ```rust
 proposal_hash: T::Hash
@@ -1974,7 +1980,7 @@ O(P) where P is the number of max proposals
 
 <details><summary><code>prune_item_identities_names(names)</code></summary>
 
-Taking 2.6567 % of a block.
+Taking 2.6583 % of a block.
 
 ```rust
 names: Vec<IdtyName>
@@ -1984,75 +1990,13 @@ names: Vec<IdtyName>
 
 remove identity names from storage
 
-### Cert - 43
-
-#### del_cert - 1
-
-<details><summary><code>del_cert(issuer, receiver)</code></summary>
-
-Taking 0.0147 % of a block.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-```
-</details>
-
-
-remove a certification (only root)
-
-#### remove_all_certs_received_by - 2
-
-<details><summary><code>remove_all_certs_received_by(idty_index)</code></summary>
-
-Taking 3.507 % of a block.
-
-```rust
-idty_index: T::IdtyIndex
-```
-</details>
-
-
-remove all certifications received by an identity (only root)
-
-### SmithCert - 53
-
-#### del_cert - 1
-
-<details><summary><code>del_cert(issuer, receiver)</code></summary>
-
-Taking 0.0147 % of a block.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-```
-</details>
-
-
-remove a certification (only root)
-
-#### remove_all_certs_received_by - 2
-
-<details><summary><code>remove_all_certs_received_by(idty_index)</code></summary>
-
-Taking 3.5027 % of a block.
-
-```rust
-idty_index: T::IdtyIndex
-```
-</details>
-
-
-remove all certifications received by an identity (only root)
-
-### Utility - 64
+### Utility - 54
 
 #### dispatch_as - 3
 
 <details><summary><code>dispatch_as(as_origin, call)</code></summary>
 
-Taking 0.0041 % of a block.
+Taking 0.0048 % of a block.
 
 ```rust
 as_origin: Box<T::PalletsOrigin>
@@ -2083,7 +2027,7 @@ There are **4** disabled calls from **2** pallets.
 
 <details><summary><code>remark(remark)</code></summary>
 
-Taking 0.0563 % of a block.
+Taking 0.0544 % of a block.
 
 ```rust
 remark: Vec<u8>
@@ -2100,7 +2044,7 @@ Make some on-chain remark.
 
 <details><summary><code>remark_with_event(remark)</code></summary>
 
-Taking 0.2158 % of a block.
+Taking 0.2043 % of a block.
 
 ```rust
 remark: Vec<u8>
@@ -2110,13 +2054,13 @@ remark: Vec<u8>
 
 Make some on-chain remark and emit event.
 
-### Session - 14
+### Session - 15
 
 #### set_keys - 0
 
 <details><summary><code>set_keys(keys, proof)</code></summary>
 
-Taking 0.0198 % of a block.
+Taking 0.0204 % of a block.
 
 ```rust
 keys: T::Keys
@@ -2139,7 +2083,7 @@ The dispatch origin of this function must be signed.
 
 <details><summary><code>purge_keys()</code></summary>
 
-Taking 0.0178 % of a block.
+Taking 0.0185 % of a block.
 
 ```rust
 ```
diff --git a/docs/api/runtime-errors.md b/docs/api/runtime-errors.md
index 80eb0c2d4..ebb10eb1a 100644
--- a/docs/api/runtime-errors.md
+++ b/docs/api/runtime-errors.md
@@ -1,6 +1,6 @@
 # Runtime errors
 
-There are **187** errors from **37** pallets.
+There are **178** errors from **35** pallets.
 
 <ul>
 <li>System - 0
@@ -271,7 +271,116 @@ Source oneshot account does not exist.
 <ul>
 </ul>
 </li>
-<li>AuthorityMembers - 10
+<li>SmithMembers - 10
+<ul>
+<li>
+<details>
+<summary>
+<code>OriginMustHaveAnIdentity</code> - 0</summary>
+Issuer of anything (invitation, acceptance, certification) must have an identity ID
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>OriginHasNeverBeenInvited</code> - 1</summary>
+Issuer must be known as a potential smith
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationIsASmithPrivilege</code> - 2</summary>
+Invitation is reseverd to smiths
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationIsAOnlineSmithPrivilege</code> - 3</summary>
+Invitation is reseverd to online smiths
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationAlreadyAccepted</code> - 4</summary>
+Invitation must not have been accepted yet
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationOfExistingNonExcluded</code> - 5</summary>
+Invitation of an already known smith is forbidden except if it has been excluded
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationOfNonMember</code> - 6</summary>
+Invitation of a non-member (of the WoT) is forbidden
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationMustBeAgreed</code> - 7</summary>
+Certification cannot be made on someone who has not accepted an invitation
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationOnExcludedIsForbidden</code> - 8</summary>
+Certification cannot be made on excluded
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationIsASmithPrivilege</code> - 9</summary>
+Issuer must be a smith
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationIsAOnlineSmithPrivilege</code> - 10</summary>
+Only online smiths can certify
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationOfSelfIsForbidden</code> - 11</summary>
+Smith cannot certify itself
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationReceiverMustHaveBeenInvited</code> - 12</summary>
+Receiver must be invited by another smith
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationAlreadyExists</code> - 13</summary>
+Receiver must not already have this certification
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationStockFullyConsumed</code> - 14</summary>
+A smith has a limited stock of certifications
+</details>
+</li>
+</ul>
+</li>
+<li>AuthorityMembers - 11
 <ul>
 <li>
 <details>
@@ -352,19 +461,19 @@ Too many authorities.
 </li>
 </ul>
 </li>
-<li>Authorship - 11
+<li>Authorship - 12
 <ul>
 </ul>
 </li>
-<li>Offences - 12
+<li>Offences - 13
 <ul>
 </ul>
 </li>
-<li>Historical - 13
+<li>Historical - 14
 <ul>
 </ul>
 </li>
-<li>Session - 14
+<li>Session - 15
 <ul>
 <li>
 <details>
@@ -403,7 +512,7 @@ Key setting account is not live, so it's impossible to associate keys.
 </li>
 </ul>
 </li>
-<li>Grandpa - 15
+<li>Grandpa - 16
 <ul>
 <li>
 <details>
@@ -458,7 +567,7 @@ A given equivocation report is valid but already previously reported.
 </li>
 </ul>
 </li>
-<li>ImOnline - 16
+<li>ImOnline - 17
 <ul>
 <li>
 <details>
@@ -476,7 +585,7 @@ Duplicated heartbeat.
 </li>
 </ul>
 </li>
-<li>AuthorityDiscovery - 17
+<li>AuthorityDiscovery - 18
 <ul>
 </ul>
 </li>
@@ -904,7 +1013,7 @@ Membership not found.
 </li>
 </ul>
 </li>
-<li>Cert - 43
+<li>Certification - 43
 <ul>
 <li>
 <details>
@@ -1003,187 +1112,7 @@ Evaluation result has a wrong length.
 </li>
 </ul>
 </li>
-<li>SmithSubWot - 50
-<ul>
-<li>
-<details>
-<summary>
-<code>NotEnoughCertsToClaimMembership</code> - 0</summary>
-Insufficient certifications received to claim membership.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>DistanceIsInvalid</code> - 1</summary>
-Distance is invalid.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>DistanceNotEvaluated</code> - 2</summary>
-Distance is not evaluated.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>DistanceEvaluationPending</code> - 3</summary>
-Distance evaluation has been requested but is still pending
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>DistanceEvaluationNotRequested</code> - 4</summary>
-Distance evaluation has not been requested
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IdtyNotAllowedToRequestMembership</code> - 5</summary>
-Identity is not allowed to request membership.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IdtyNotAllowedToRenewMembership</code> - 6</summary>
-Identity not allowed to renew membership.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IdtyCreationPeriodNotRespected</code> - 7</summary>
-Identity creation period not respected.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>NotEnoughReceivedCertsToCreateIdty</code> - 8</summary>
-Insufficient received certifications to create identity.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MaxEmittedCertsReached</code> - 9</summary>
-Maximum number of emitted certifications reached.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>NotAllowedToChangeIdtyAddress</code> - 10</summary>
-Not allowed to change identity address.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>NotAllowedToRemoveIdty</code> - 11</summary>
-Not allowed to remove identity.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IssuerNotMember</code> - 12</summary>
-Issuer cannot emit a certification because it is not member.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>CertToUnconfirmed</code> - 13</summary>
-Cannot issue a certification to an unconfirmed identity
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>CertToRevoked</code> - 14</summary>
-Cannot issue a certification to a revoked identity
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IdtyNotFound</code> - 15</summary>
-Issuer or receiver not found.
-</details>
-</li>
-</ul>
-</li>
-<li>SmithMembership - 52
-<ul>
-<li>
-<details>
-<summary>
-<code>IdtyIdNotFound</code> - 0</summary>
-Identity ID not found.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MembershipAlreadyAcquired</code> - 1</summary>
-Membership already acquired.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MembershipNotFound</code> - 2</summary>
-Membership not found.
-</details>
-</li>
-</ul>
-</li>
-<li>SmithCert - 53
-<ul>
-<li>
-<details>
-<summary>
-<code>CannotCertifySelf</code> - 0</summary>
-Identity cannot certify itself
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IssuedTooManyCert</code> - 1</summary>
-Identity has already issued the maximum number of certifications
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>IssuerNotFound</code> - 2</summary>
-Issuer not found
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>NotEnoughCertReceived</code> - 3</summary>
-Insufficient certifications received.
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>NotRespectCertPeriod</code> - 4</summary>
-Identity has issued a certification too recently.
-</details>
-</li>
-</ul>
-</li>
-<li>AtomicSwap - 60
+<li>AtomicSwap - 50
 <ul>
 <li>
 <details>
@@ -1243,7 +1172,7 @@ Duration has not yet passed for the swap to be cancelled.
 </li>
 </ul>
 </li>
-<li>Multisig - 61
+<li>Multisig - 51
 <ul>
 <li>
 <details>
@@ -1345,7 +1274,7 @@ The data to be stored is already stored.
 </li>
 </ul>
 </li>
-<li>ProvideRandomness - 62
+<li>ProvideRandomness - 52
 <ul>
 <li>
 <details>
@@ -1356,7 +1285,7 @@ Request randomness queue is full.
 </li>
 </ul>
 </li>
-<li>Proxy - 63
+<li>Proxy - 53
 <ul>
 <li>
 <details>
@@ -1416,7 +1345,7 @@ Cannot add self as proxy.
 </li>
 </ul>
 </li>
-<li>Utility - 64
+<li>Utility - 54
 <ul>
 <li>
 <details>
@@ -1427,7 +1356,7 @@ Too many calls batched.
 </li>
 </ul>
 </li>
-<li>Treasury - 65
+<li>Treasury - 55
 <ul>
 <li>
 <details>
diff --git a/docs/api/runtime-events.md b/docs/api/runtime-events.md
index 05a1536de..9aa809263 100644
--- a/docs/api/runtime-events.md
+++ b/docs/api/runtime-events.md
@@ -1,6 +1,6 @@
 # Runtime events
 
-There are **127** events from **37** pallets.
+There are **127** events from **35** pallets.
 
 <ul>
 <li>System - 0
@@ -644,7 +644,73 @@ no args
 </li>
 </ul>
 </li>
-<li>AuthorityMembers - 10
+<li>SmithMembers - 10
+<ul>
+<li>
+<details>
+<summary>
+<code>InvitationSent(idty_index, invited_by)</code> - 0</summary>
+An identity is being inivited to become a smith
+
+```rust
+idty_index: T::IdtyIndex
+invited_by: T::IdtyIndex
+```
+
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>InvitationAccepted(idty_index)</code> - 1</summary>
+The invitation has been accepted
+
+```rust
+idty_index: T::IdtyIndex
+```
+
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>CertificationReceived(idty_index, issued_by)</code> - 2</summary>
+Certification received
+
+```rust
+idty_index: T::IdtyIndex
+issued_by: T::IdtyIndex
+```
+
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>PromotedToSmith(idty_index)</code> - 3</summary>
+A smith gathered enough certifications to become an authority (can call `go_online()`).
+
+```rust
+idty_index: T::IdtyIndex
+```
+
+</details>
+</li>
+<li>
+<details>
+<summary>
+<code>SmithExcluded(idty_index)</code> - 4</summary>
+A smith has been removed from the smiths set
+
+```rust
+idty_index: T::IdtyIndex
+```
+
+</details>
+</li>
+</ul>
+</li>
+<li>AuthorityMembers - 11
 <ul>
 <li>
 <details>
@@ -732,11 +798,11 @@ member: T::MemberId
 </li>
 </ul>
 </li>
-<li>Authorship - 11
+<li>Authorship - 12
 <ul>
 </ul>
 </li>
-<li>Offences - 12
+<li>Offences - 13
 <ul>
 <li>
 <details>
@@ -753,11 +819,11 @@ timeslot: OpaqueTimeSlot
 </li>
 </ul>
 </li>
-<li>Historical - 13
+<li>Historical - 14
 <ul>
 </ul>
 </li>
-<li>Session - 14
+<li>Session - 15
 <ul>
 <li>
 <details>
@@ -774,7 +840,7 @@ session_index: SessionIndex
 </li>
 </ul>
 </li>
-<li>Grandpa - 15
+<li>Grandpa - 16
 <ul>
 <li>
 <details>
@@ -814,7 +880,7 @@ no args
 </li>
 </ul>
 </li>
-<li>ImOnline - 16
+<li>ImOnline - 17
 <ul>
 <li>
 <details>
@@ -854,7 +920,7 @@ offline: Vec<IdentificationTuple<T>>
 </li>
 </ul>
 </li>
-<li>AuthorityDiscovery - 17
+<li>AuthorityDiscovery - 18
 <ul>
 </ul>
 </li>
@@ -1232,7 +1298,7 @@ reason: MembershipRemovalReason
 </li>
 </ul>
 </li>
-<li>Cert - 43
+<li>Certification - 43
 <ul>
 <li>
 <details>
@@ -1318,85 +1384,7 @@ status: Option<(<T as frame_system::Config>::AccountId, DistanceStatus)>
 </li>
 </ul>
 </li>
-<li>SmithSubWot - 50
-<ul>
-</ul>
-</li>
-<li>SmithMembership - 52
-<ul>
-<li>
-<details>
-<summary>
-<code>MembershipAdded(member, expire_on)</code> - 0</summary>
-A membership was added.
-
-```rust
-member: T::IdtyId
-expire_on: BlockNumberFor<T>
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>MembershipRemoved(member, reason)</code> - 1</summary>
-A membership was removed.
-
-```rust
-member: T::IdtyId
-reason: MembershipRemovalReason
-```
-
-</details>
-</li>
-</ul>
-</li>
-<li>SmithCert - 53
-<ul>
-<li>
-<details>
-<summary>
-<code>CertAdded(issuer, receiver)</code> - 0</summary>
-A new certification was added.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>CertRemoved(issuer, receiver, expiration)</code> - 1</summary>
-A certification was removed.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-expiration: bool
-```
-
-</details>
-</li>
-<li>
-<details>
-<summary>
-<code>CertRenewed(issuer, receiver)</code> - 2</summary>
-A certification was renewed.
-
-```rust
-issuer: T::IdtyIndex
-receiver: T::IdtyIndex
-```
-
-</details>
-</li>
-</ul>
-</li>
-<li>AtomicSwap - 60
+<li>AtomicSwap - 50
 <ul>
 <li>
 <details>
@@ -1441,7 +1429,7 @@ proof: HashedProof
 </li>
 </ul>
 </li>
-<li>Multisig - 61
+<li>Multisig - 51
 <ul>
 <li>
 <details>
@@ -1505,7 +1493,7 @@ call_hash: CallHash
 </li>
 </ul>
 </li>
-<li>ProvideRandomness - 62
+<li>ProvideRandomness - 52
 <ul>
 <li>
 <details>
@@ -1536,7 +1524,7 @@ r#type: RandomnessType
 </li>
 </ul>
 </li>
-<li>Proxy - 63
+<li>Proxy - 53
 <ul>
 <li>
 <details>
@@ -1612,7 +1600,7 @@ delay: T::BlockNumber
 </li>
 </ul>
 </li>
-<li>Utility - 64
+<li>Utility - 54
 <ul>
 <li>
 <details>
@@ -1690,7 +1678,7 @@ result: DispatchResult
 </li>
 </ul>
 </li>
-<li>Treasury - 65
+<li>Treasury - 55
 <ul>
 <li>
 <details>
diff --git a/end2end-tests/cucumber-features/identity_creation.feature b/end2end-tests/cucumber-features/identity_creation.feature
index 0e7a8a10a..f8bffeacc 100644
--- a/end2end-tests/cucumber-features/identity_creation.feature
+++ b/end2end-tests/cucumber-features/identity_creation.feature
@@ -2,11 +2,11 @@ Feature: Identity creation
 
   Scenario: alice invites a new member to join the web of trust
     # 6 ÄžD covers:
-    # - account creation fees (3 ÄžD) 
+    # - account creation fees (3 ÄžD)
     # - existential deposit (1 ÄžD)
     # - transaction fees (below 1 ÄžD)
     When alice sends 7 ÄžD to dave
-    # Alice is treasury funder for 1 ÄžD => 10-1-7 = 2 (minus fees)
+    # Alice is treasury funder for 1 ÄžD => 10-1-7 = 2 (minus TODO fees)
     Then alice should have 199 cÄžD
     When bob sends 750 cÄžD to dave
     When charlie sends 6 ÄžD to eve
diff --git a/end2end-tests/cucumber-features/oneshot_account.feature b/end2end-tests/cucumber-features/oneshot_account.feature
index ebe5a19a1..e180b019b 100644
--- a/end2end-tests/cucumber-features/oneshot_account.feature
+++ b/end2end-tests/cucumber-features/oneshot_account.feature
@@ -2,7 +2,7 @@ Feature: Oneshot account
 
   Scenario: Simple oneshot consumption
     When alice sends 7 ÄžD to oneshot dave
-    # Alice is treasury funder for 1 ÄžD and pays fees
+    # Alice is treasury funder for 1 ÄžD and pays fees TODO
     Then alice should have 199 cÄžD
     Then dave should have oneshot 7 ÄžD
     When oneshot dave consumes into account bob
@@ -12,7 +12,7 @@ Feature: Oneshot account
 
   Scenario: Double oneshot consumption
     When alice sends 7 ÄžD to oneshot dave
-    # Alice is treasury funder for 1 ÄžD and pays fees
+    # Alice is treasury funder for 1 ÄžD and pays fees TODO
     Then alice should have 199 cÄžD
     Then dave should have oneshot 7 ÄžD
     When oneshot dave consumes 4 ÄžD into account bob and the rest into oneshot charlie
diff --git a/end2end-tests/tests/common/cert.rs b/end2end-tests/tests/common/cert.rs
index 06d6e5589..0160b2b46 100644
--- a/end2end-tests/tests/common/cert.rs
+++ b/end2end-tests/tests/common/cert.rs
@@ -51,7 +51,9 @@ pub async fn certify(client: &Client, from: AccountKeyring, to: AccountKeyring)
         client
             .tx()
             .create_signed(
-                &gdev::tx().cert().add_cert(issuer_index, receiver_index),
+                &gdev::tx()
+                    .certification()
+                    .add_cert(issuer_index, receiver_index),
                 &signer,
                 BaseExtrinsicParamsBuilder::new(),
             )
diff --git a/end2end-tests/tests/cucumber_tests.rs b/end2end-tests/tests/cucumber_tests.rs
index db7e64171..7832a4a3d 100644
--- a/end2end-tests/tests/cucumber_tests.rs
+++ b/end2end-tests/tests/cucumber_tests.rs
@@ -476,7 +476,11 @@ async fn should_be_certified_by(
         .unwrap();
 
     let issuers = world
-        .read_or_default(&gdev::storage().cert().certs_by_receiver(receiver_index))
+        .read_or_default(
+            &gdev::storage()
+                .certification()
+                .certs_by_receiver(receiver_index),
+        )
         .await
         .await?;
 
diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs
index 4d80232c6..e927d483b 100644
--- a/node/src/chain_spec/gdev.rs
+++ b/node/src/chain_spec/gdev.rs
@@ -23,9 +23,10 @@ use common_runtime::entities::IdtyData;
 use common_runtime::*;
 use gdev_runtime::{
     opaque::SessionKeys, pallet_universal_dividend, parameters, AccountConfig,
-    AuthorityMembersConfig, BabeConfig, BalancesConfig, CertConfig, GenesisConfig, IdentityConfig,
-    MembershipConfig, ParametersConfig, QuotaConfig, Runtime, SessionConfig, SmithMembersConfig,
-    SudoConfig, SystemConfig, TechnicalCommitteeConfig, UniversalDividendConfig, WASM_BINARY,
+    AuthorityMembersConfig, BabeConfig, BalancesConfig, CertificationConfig, GenesisConfig,
+    IdentityConfig, MembershipConfig, ParametersConfig, QuotaConfig, Runtime, SessionConfig,
+    SmithMembersConfig, SudoConfig, SystemConfig, TechnicalCommitteeConfig,
+    UniversalDividendConfig, WASM_BINARY,
 };
 use jsonrpsee::core::JsonValue;
 use sc_network::config::MultiaddrWithPeerId;
@@ -352,7 +353,7 @@ fn genesis_data_to_gdev_genesis_conf(
                 )
                 .collect(),
         },
-        cert: CertConfig {
+        certification: CertificationConfig {
             apply_cert_period_at_genesis: false,
             certs_by_receiver,
         },
diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs
index ab9856efe..56481245e 100644
--- a/node/src/chain_spec/gen_genesis_data.rs
+++ b/node/src/chain_spec/gen_genesis_data.rs
@@ -1676,6 +1676,7 @@ where
     let idty_index_start: u32 = 1;
     let common_parameters = get_common_parameters(&parameters);
     let names: [&str; 6] = ["Alice", "Bob", "Charlie", "Dave", "Eve", "Ferdie"];
+    let initial_idty_balance = 1_000 * ud;
 
     let initial_smiths = (0..initial_smiths_len)
         .map(|i| get_authority_keys_from_seed(names[i]))
@@ -1722,7 +1723,8 @@ where
                     random_id: H256(blake2_256(
                         &(i as u32 + idty_index_start, owner_key).encode(),
                     )),
-                    balance: ud,
+                    // Should be sufficient for the overhead benchmark
+                    balance: initial_idty_balance,
                     idty_id: Some(i as u32 + idty_index_start),
                 },
             )
@@ -1797,7 +1799,7 @@ where
         first_ud_reeval: None,
         identities,
         initial_authorities,
-        initial_monetary_mass: initial_identities_len as u64 * ud,
+        initial_monetary_mass: initial_identities_len as u64 * initial_idty_balance,
         memberships: (1..=initial_identities.len())
             .map(|i| (i as u32, MembershipData { expire_on: 0 }))
             .collect(),
diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs
index 4b1ee27f2..d01ee0cce 100644
--- a/node/src/chain_spec/gtest.rs
+++ b/node/src/chain_spec/gtest.rs
@@ -23,9 +23,9 @@ use frame_benchmarking::frame_support::traits::Get;
 use gtest_runtime::SmithMembersConfig;
 use gtest_runtime::{
     opaque::SessionKeys, pallet_universal_dividend, parameters, AccountConfig, AccountId,
-    AuthorityMembersConfig, BabeConfig, BalancesConfig, CertConfig, GenesisConfig, IdentityConfig,
-    ImOnlineId, MembershipConfig, Perbill, QuotaConfig, Runtime, SessionConfig, SudoConfig,
-    SystemConfig, TechnicalCommitteeConfig, UniversalDividendConfig, WASM_BINARY,
+    AuthorityMembersConfig, BabeConfig, BalancesConfig, CertificationConfig, GenesisConfig,
+    IdentityConfig, ImOnlineId, MembershipConfig, Perbill, QuotaConfig, Runtime, SessionConfig,
+    SudoConfig, SystemConfig, TechnicalCommitteeConfig, UniversalDividendConfig, WASM_BINARY,
 };
 use jsonrpsee::core::JsonValue;
 use sc_consensus_grandpa::AuthorityId as GrandpaId;
@@ -301,7 +301,7 @@ fn genesis_data_to_gtest_genesis_conf(
                 )
                 .collect(),
         },
-        cert: CertConfig {
+        certification: CertificationConfig {
             apply_cert_period_at_genesis: true,
             certs_by_receiver,
         },
diff --git a/resources/metadata.scale b/resources/metadata.scale
index d9b927842841c74ddf26cd400b3b4a304a3c6eeb..15ad56874e147a9b94c30468250afd196b8504ec 100644
GIT binary patch
delta 187
zcmaFynSJUP_6>75_)MHri%K%nGLsWaGV}8`FXU*;5<wMXVc5yUcyjW=(imP8wat@?
zw@)f&JfmspAfe2_&7k15@**P>g9GECV>+S?jNAd!_N~wZ3S0oP8D@O9iv_YjFfcMO
jz~towr%#{DD8~ZgZ{InWG2KNL)n-Oi?sn}*jC;iauz*1P

delta 176
zcmbRGh5f~6_6>75xCNY3i%M7+G#MEuOy8KnD6;toM@|+@bSD$z(#Zk^F_RY*vox<Q
z-oCb&@r-8lL_>83ZUzOfl@}SA7#tWE<ueK~Fmg-ebgt9`3S0oP8D@O9iv_YjFfcMO
xz~sN&7G4Y#Q(y$j!!<LqGjs%Hl`t^`fYoikGM6#k1!6rT*lF7%9x?6}2LOJkGNk|j

diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml
index 04ca8dd0c..c4206e8db 100644
--- a/runtime/common/Cargo.toml
+++ b/runtime/common/Cargo.toml
@@ -7,6 +7,7 @@ authors = ['Axiom-Team Developers <https://axiom-team.fr>']
 edition = "2021"
 
 [features]
+constant-fees = []
 runtime-benchmarks = [
     "frame-benchmarking/runtime-benchmarks",
     'frame-support/runtime-benchmarks',
diff --git a/runtime/common/src/fees.rs b/runtime/common/src/fees.rs
index 890d56c09..fb43d4f1f 100644
--- a/runtime/common/src/fees.rs
+++ b/runtime/common/src/fees.rs
@@ -14,8 +14,26 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>.
 
+// In the deployed fees model, a mapping of 5 (5cG) corresponds to a base extrinsic weight,
+// achieved through a 1-dimensional polynomial. Additionally, 1 (1cG) corresponds to an extrinsic length of 100 bytes.
+//
+// For testing purposes, we adopt a human-predictable weight system that remains invariant to the chosen fees model for release.
+// This involves setting a constant weight_to_fee equal to 1 and a constant length_to_fee set to 0, resulting in each extrinsic costing 2 (2cG).
+
 pub use frame_support::weights::{Weight, WeightToFee};
-use sp_arithmetic::traits::{BaseArithmetic, One, Unsigned};
+use sp_arithmetic::traits::{BaseArithmetic, Unsigned};
+
+#[cfg(not(feature = "constant-fees"))]
+use {
+    crate::weights::extrinsic_weights::ExtrinsicBaseWeight,
+    frame_support::weights::{
+        WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial,
+    },
+    smallvec::smallvec,
+    sp_arithmetic::MultiplyRational,
+    sp_runtime::Perbill,
+    sp_runtime::SaturatedConversion,
+};
 
 pub struct LengthToFeeImpl<T>(sp_std::marker::PhantomData<T>);
 
@@ -25,15 +43,39 @@ where
 {
     type Balance = T;
 
-    // Force constant fees
+    #[cfg(not(feature = "constant-fees"))]
     fn weight_to_fee(length_in_bytes: &Weight) -> Self::Balance {
-        ((length_in_bytes.ref_time() as u32 + length_in_bytes.proof_size() as u32) / 1_000_u32)
-            .into()
+        Self::Balance::saturated_from(length_in_bytes.ref_time() / 100u64)
+    }
+    #[cfg(feature = "constant-fees")]
+    fn weight_to_fee(_length_in_bytes: &Weight) -> Self::Balance {
+        0u32.into()
     }
 }
 
 pub struct WeightToFeeImpl<T>(sp_std::marker::PhantomData<T>);
 
+#[cfg(not(feature = "constant-fees"))]
+impl<T> WeightToFeePolynomial for WeightToFeeImpl<T>
+where
+    T: BaseArithmetic + From<u64> + Copy + Unsigned + From<u32> + MultiplyRational,
+{
+    type Balance = T;
+
+    fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
+        // The extrinsic base weight (smallest non-zero weight) is mapped to 5 cent
+        let p: Self::Balance = 5u64.into();
+        let q: Self::Balance = Self::Balance::from(ExtrinsicBaseWeight::get().ref_time());
+        smallvec![WeightToFeeCoefficient {
+            degree: 1,
+            negative: false,
+            coeff_frac: Perbill::from_rational(p % q, q),
+            coeff_integer: p / q,
+        }]
+    }
+}
+
+#[cfg(feature = "constant-fees")]
 impl<T> WeightToFee for WeightToFeeImpl<T>
 where
     T: BaseArithmetic + From<u32> + Copy + Unsigned,
@@ -41,7 +83,6 @@ where
     type Balance = T;
 
     fn weight_to_fee(_weight: &Weight) -> Self::Balance {
-        // Force constant fees for now
-        One::one()
+        1u32.into()
     }
 }
diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs
index f1cfbf299..6bae43eb5 100644
--- a/runtime/common/src/pallets_config.rs
+++ b/runtime/common/src/pallets_config.rs
@@ -214,10 +214,7 @@ macro_rules! pallets_config {
             // does a filter on the call
             type OnChargeTransaction = OneshotAccount;
             type OperationalFeeMultiplier = frame_support::traits::ConstU8<5>;
-            #[cfg(not(feature = "runtime-benchmarks"))]
             type WeightToFee = common_runtime::fees::WeightToFeeImpl<Balance>;
-            #[cfg(feature = "runtime-benchmarks")]
-            type WeightToFee = frame_support::weights::ConstantMultiplier::<u64, sp_core::ConstU64<0u64>>; // Necessary for overhead benchmarking until WeightToFee has a correct implementation
             type LengthToFee = common_runtime::fees::LengthToFeeImpl<Balance>;
             type FeeMultiplierUpdate = pallet_transaction_payment::ConstFeeMultiplier<FeeMultiplier>;
         }
@@ -493,7 +490,7 @@ macro_rules! pallets_config {
             type MembershipPeriod = MembershipPeriod;
             type OnEvent = (OnMembershipEventHandler<Wot, Runtime>, Wot);
             type RuntimeEvent = RuntimeEvent;
-            type WeightInfo = common_runtime::weights::pallet_membership_membership::WeightInfo<Runtime>;
+            type WeightInfo = common_runtime::weights::pallet_membership::WeightInfo<Runtime>;
             #[cfg(feature = "runtime-benchmarks")]
             type BenchmarkSetupHandler = common_runtime::providers::BenchmarkSetupHandler<Runtime>;
         }
@@ -508,7 +505,7 @@ macro_rules! pallets_config {
             type OnNewcert = Wot;
             type OnRemovedCert = Wot;
             type RuntimeEvent = RuntimeEvent;
-            type WeightInfo = common_runtime::weights::pallet_certification_cert::WeightInfo<Runtime>;
+            type WeightInfo = common_runtime::weights::pallet_certification::WeightInfo<Runtime>;
             type ValidityPeriod = ValidityPeriod;
         }
         parameter_types! {
diff --git a/runtime/common/src/weights.rs b/runtime/common/src/weights.rs
index bf1e188a9..feb3b0eaa 100644
--- a/runtime/common/src/weights.rs
+++ b/runtime/common/src/weights.rs
@@ -43,8 +43,8 @@ pub mod pallet_utility;
 pub mod pallet_duniter_account;
 pub mod pallet_quota;
 pub mod pallet_oneshot_account;
-pub mod pallet_certification_cert;
-pub mod pallet_membership_membership;
+pub mod pallet_certification;
+pub mod pallet_membership;
 pub mod pallet_smith_members;
 pub mod pallet_authority_members;
 pub mod paritydb_weights;
diff --git a/runtime/common/src/weights/block_weights.rs b/runtime/common/src/weights/block_weights.rs
index 0bbd183c5..30231d207 100644
--- a/runtime/common/src/weights/block_weights.rs
+++ b/runtime/common/src/weights/block_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26 (Y/M/D)
+//! DATE: 2024-01-15 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `block`, LONG-NAME: `BlockExecution`, RUNTIME: `Äždev Local Testnet`
@@ -27,17 +27,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 151_798, 231_989
-	///   Average:  164_390
-	///   Median:   161_435
-	///   Std-Dev:  11994.84
+	///   Min, Max: 143_797, 169_170
+	///   Average:  147_198
+	///   Median:   146_289
+	///   Std-Dev:  3315.16
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 213_693
-	///   95th: 188_989
-	///   75th: 164_199
+	///   99th: 157_051
+	///   95th: 152_313
+	///   75th: 147_656
 	pub const BlockExecutionWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(164_390), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(147_198), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/common/src/weights/extrinsic_weights.rs b/runtime/common/src/weights/extrinsic_weights.rs
index fb0cc71c9..99cd803d3 100644
--- a/runtime/common/src/weights/extrinsic_weights.rs
+++ b/runtime/common/src/weights/extrinsic_weights.rs
@@ -1,6 +1,6 @@
 
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26 (Y/M/D)
+//! DATE: 2024-01-15 (Y/M/D)
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //!
 //! SHORT-NAME: `extrinsic`, LONG-NAME: `ExtrinsicBase`, RUNTIME: `Äždev Local Testnet`
@@ -27,17 +27,17 @@ parameter_types! {
 	/// Calculated by multiplying the *Average* with `1.0` and adding `0`.
 	///
 	/// Stats nanoseconds:
-	///   Min, Max: 74_306, 80_686
-	///   Average:  75_521
-	///   Median:   75_200
-	///   Std-Dev:  1107.91
+	///   Min, Max: 86_213, 89_249
+	///   Average:  88_814
+	///   Median:   89_036
+	///   Std-Dev:  762.64
 	///
 	/// Percentiles nanoseconds:
-	///   99th: 80_133
-	///   95th: 77_493
-	///   75th: 75_924
+	///   99th: 89_245
+	///   95th: 89_207
+	///   75th: 89_105
 	pub const ExtrinsicBaseWeight: Weight =
-		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(75_521), 0);
+		Weight::from_parts(WEIGHT_REF_TIME_PER_NANOS.saturating_mul(88_814), 0);
 }
 
 #[cfg(test)]
diff --git a/runtime/common/src/weights/frame_benchmarking_baseline.rs b/runtime/common/src/weights/frame_benchmarking_baseline.rs
index acc2e0374..963c97ee3 100644
--- a/runtime/common/src/weights/frame_benchmarking_baseline.rs
+++ b/runtime/common/src/weights/frame_benchmarking_baseline.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `frame_benchmarking::baseline`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,8 +53,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 121_000 picoseconds.
-		Weight::from_parts(155_503, 0)
+		// Minimum execution time: 117_000 picoseconds.
+		Weight::from_parts(150_959, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -62,8 +62,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 126_000 picoseconds.
-		Weight::from_parts(156_742, 0)
+		// Minimum execution time: 117_000 picoseconds.
+		Weight::from_parts(148_790, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -71,8 +71,8 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 124_000 picoseconds.
-		Weight::from_parts(157_722, 0)
+		// Minimum execution time: 119_000 picoseconds.
+		Weight::from_parts(152_613, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 1000000]`.
@@ -80,16 +80,16 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 122_000 picoseconds.
-		Weight::from_parts(158_204, 0)
+		// Minimum execution time: 118_000 picoseconds.
+		Weight::from_parts(152_186, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	fn hashing() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 21_140_474_000 picoseconds.
-		Weight::from_parts(21_674_990_000, 0)
+		// Minimum execution time: 20_552_684_000 picoseconds.
+		Weight::from_parts(20_609_799_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `i` is `[0, 100]`.
@@ -97,10 +97,10 @@ impl<T: frame_system::Config> frame_benchmarking::baseline::WeightInfo for Weigh
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 137_000 picoseconds.
-		Weight::from_parts(5_177_470, 0)
+		// Minimum execution time: 125_000 picoseconds.
+		Weight::from_parts(13_894_679, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 13_536
-			.saturating_add(Weight::from_parts(37_911_222, 0).saturating_mul(i.into()))
+			// Standard Error: 80_824
+			.saturating_add(Weight::from_parts(37_048_624, 0).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/common/src/weights/frame_system.rs b/runtime/common/src/weights/frame_system.rs
index e28d0736f..293af4ef6 100644
--- a/runtime/common/src/weights/frame_system.rs
+++ b/runtime/common/src/weights/frame_system.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `frame_system`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,22 +53,22 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_509_000 picoseconds.
-		Weight::from_parts(1_562_000, 0)
+		// Minimum execution time: 1_559_000 picoseconds.
+		Weight::from_parts(1_341_791, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(267, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(254, 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: 5_464_000 picoseconds.
-		Weight::from_parts(5_690_000, 0)
+		// Minimum execution time: 5_556_000 picoseconds.
+		Weight::from_parts(5_902_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			// Standard Error: 0
-			.saturating_add(Weight::from_parts(1_077, 0).saturating_mul(b.into()))
+			.saturating_add(Weight::from_parts(1_015, 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)
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `1485`
-		// Minimum execution time: 3_139_000 picoseconds.
-		Weight::from_parts(3_479_000, 0)
+		// Minimum execution time: 3_000_000 picoseconds.
+		Weight::from_parts(3_415_000, 0)
 			.saturating_add(Weight::from_parts(0, 1485))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -91,11 +91,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_700_000 picoseconds.
-		Weight::from_parts(1_767_000, 0)
+		// Minimum execution time: 1_572_000 picoseconds.
+		Weight::from_parts(1_639_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 640
-			.saturating_add(Weight::from_parts(665_906, 0).saturating_mul(i.into()))
+			// Standard Error: 513
+			.saturating_add(Weight::from_parts(662_956, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: Skipped Metadata (r:0 w:0)
@@ -105,11 +105,11 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 1_614_000 picoseconds.
-		Weight::from_parts(1_731_000, 0)
+		// Minimum execution time: 1_521_000 picoseconds.
+		Weight::from_parts(1_640_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 857
-			.saturating_add(Weight::from_parts(507_172, 0).saturating_mul(i.into()))
+			// Standard Error: 536
+			.saturating_add(Weight::from_parts(474_634, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: Skipped Metadata (r:0 w:0)
@@ -117,13 +117,13 @@ impl<T: frame_system::Config> frame_system::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[0, 1000]`.
 	fn kill_prefix(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `82 + p * (69 ±0)`
-		//  Estimated: `81 + p * (70 ±0)`
-		// Minimum execution time: 2_993_000 picoseconds.
-		Weight::from_parts(3_078_000, 0)
-			.saturating_add(Weight::from_parts(0, 81))
-			// Standard Error: 987
-			.saturating_add(Weight::from_parts(950_206, 0).saturating_mul(p.into()))
+		//  Measured:  `77 + p * (69 ±0)`
+		//  Estimated: `76 + p * (70 ±0)`
+		// Minimum execution time: 2_737_000 picoseconds.
+		Weight::from_parts(2_998_000, 0)
+			.saturating_add(Weight::from_parts(0, 76))
+			// Standard Error: 769
+			.saturating_add(Weight::from_parts(888_196, 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()))
diff --git a/runtime/common/src/weights/pallet_authority_members.rs b/runtime/common/src/weights/pallet_authority_members.rs
index 73addf627..44f60de82 100644
--- a/runtime/common/src/weights/pallet_authority_members.rs
+++ b/runtime/common/src/weights/pallet_authority_members.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_authority_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -50,8 +50,8 @@ pub struct WeightInfo<T>(PhantomData<T>);
 impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInfo<T> {
 	/// Storage: Identity IdentityIndexOf (r:1 w:0)
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:0)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
+	/// Storage: SmithMembers Smiths (r:1 w:0)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers Members (r:1 w:0)
 	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OutgoingAuthorities (r:1 w:1)
@@ -60,22 +60,20 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:0)
 	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AuthorityMembers AuthoritiesCounter (r:1 w:1)
-	/// Proof Skipped: AuthorityMembers AuthoritiesCounter (max_values: Some(1), max_size: None, mode: Measured)
 	fn go_offline() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `697`
-		//  Estimated: `4162`
-		// Minimum execution time: 22_833_000 picoseconds.
-		Weight::from_parts(23_764_000, 0)
-			.saturating_add(Weight::from_parts(0, 4162))
-			.saturating_add(T::DbWeight::get().reads(7))
-			.saturating_add(T::DbWeight::get().writes(2))
+		//  Measured:  `717`
+		//  Estimated: `4182`
+		// Minimum execution time: 21_181_000 picoseconds.
+		Weight::from_parts(21_855_000, 0)
+			.saturating_add(Weight::from_parts(0, 4182))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: Identity IdentityIndexOf (r:1 w:0)
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:0)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
+	/// Storage: SmithMembers Smiths (r:1 w:0)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers Blacklist (r:1 w:0)
 	/// Proof Skipped: AuthorityMembers Blacklist (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers Members (r:1 w:0)
@@ -88,22 +86,20 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof Skipped: AuthorityMembers OutgoingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:0)
 	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AuthorityMembers AuthoritiesCounter (r:1 w:1)
-	/// Proof Skipped: AuthorityMembers AuthoritiesCounter (max_values: Some(1), max_size: None, mode: Measured)
 	fn go_online() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1087`
-		//  Estimated: `4552`
-		// Minimum execution time: 30_618_000 picoseconds.
-		Weight::from_parts(36_860_000, 0)
-			.saturating_add(Weight::from_parts(0, 4552))
-			.saturating_add(T::DbWeight::get().reads(9))
-			.saturating_add(T::DbWeight::get().writes(2))
+		//  Measured:  `1107`
+		//  Estimated: `4572`
+		// Minimum execution time: 28_682_000 picoseconds.
+		Weight::from_parts(29_510_000, 0)
+			.saturating_add(Weight::from_parts(0, 4572))
+			.saturating_add(T::DbWeight::get().reads(8))
+			.saturating_add(T::DbWeight::get().writes(1))
 	}
 	/// Storage: Identity IdentityIndexOf (r:1 w:0)
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:0)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
+	/// Storage: SmithMembers Smiths (r:1 w:0)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
 	/// Storage: System Account (r:1 w:0)
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Session NextKeys (r:1 w:1)
@@ -114,11 +110,11 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
 	fn set_session_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1468`
-		//  Estimated: `12358`
-		// Minimum execution time: 32_948_000 picoseconds.
-		Weight::from_parts(33_997_000, 0)
-			.saturating_add(Weight::from_parts(0, 12358))
+		//  Measured:  `1511`
+		//  Estimated: `12401`
+		// Minimum execution time: 32_698_000 picoseconds.
+		Weight::from_parts(33_404_000, 0)
+			.saturating_add(Weight::from_parts(0, 12401))
 			.saturating_add(T::DbWeight::get().reads(8))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -128,41 +124,33 @@ impl<T: frame_system::Config> pallet_authority_members::WeightInfo for WeightInf
 	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OutgoingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers OutgoingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AuthorityMembers AuthoritiesCounter (r:1 w:1)
-	/// Proof Skipped: AuthorityMembers AuthoritiesCounter (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers IncomingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: Session NextKeys (r:1 w:1)
 	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
 	/// Storage: System Account (r:1 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
-	/// Storage: SmithMembership Membership (r:1 w:1)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership CounterForMembership (r:1 w:1)
-	/// Proof: SmithMembership CounterForMembership (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: SmithMembership MembershipsExpireOn (r:1 w:1)
-	/// Proof Skipped: SmithMembership MembershipsExpireOn (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)
 	fn remove_member() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `930`
-		//  Estimated: `4395`
-		// Minimum execution time: 58_396_000 picoseconds.
-		Weight::from_parts(61_595_000, 0)
-			.saturating_add(Weight::from_parts(0, 4395))
-			.saturating_add(T::DbWeight::get().reads(10))
-			.saturating_add(T::DbWeight::get().writes(14))
+		//  Measured:  `749`
+		//  Estimated: `4214`
+		// Minimum execution time: 37_871_000 picoseconds.
+		Weight::from_parts(39_629_000, 0)
+			.saturating_add(Weight::from_parts(0, 4214))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(10))
 	}
 	/// Storage: AuthorityMembers Blacklist (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers Blacklist (max_values: Some(1), max_size: None, mode: Measured)
 	fn remove_member_from_blacklist() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `222`
-		//  Estimated: `1707`
-		// Minimum execution time: 10_396_000 picoseconds.
-		Weight::from_parts(10_825_000, 0)
-			.saturating_add(Weight::from_parts(0, 1707))
+		//  Measured:  `199`
+		//  Estimated: `1684`
+		// Minimum execution time: 10_337_000 picoseconds.
+		Weight::from_parts(10_781_000, 0)
+			.saturating_add(Weight::from_parts(0, 1684))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/common/src/weights/pallet_balances.rs b/runtime/common/src/weights/pallet_balances.rs
index b9fe23425..f204c5c8b 100644
--- a/runtime/common/src/weights/pallet_balances.rs
+++ b/runtime/common/src/weights/pallet_balances.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_balances`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -56,8 +56,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3591`
-		// Minimum execution time: 53_326_000 picoseconds.
-		Weight::from_parts(55_139_000, 0)
+		// Minimum execution time: 55_874_000 picoseconds.
+		Weight::from_parts(57_542_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -70,8 +70,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3591`
-		// Minimum execution time: 37_130_000 picoseconds.
-		Weight::from_parts(38_183_000, 0)
+		// Minimum execution time: 37_453_000 picoseconds.
+		Weight::from_parts(38_344_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -82,8 +82,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
 		//  Estimated: `3591`
-		// Minimum execution time: 12_055_000 picoseconds.
-		Weight::from_parts(12_677_000, 0)
+		// Minimum execution time: 12_364_000 picoseconds.
+		Weight::from_parts(12_798_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -94,8 +94,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
 		//  Estimated: `3591`
-		// Minimum execution time: 18_539_000 picoseconds.
-		Weight::from_parts(19_109_000, 0)
+		// Minimum execution time: 18_009_000 picoseconds.
+		Weight::from_parts(18_456_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -108,8 +108,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `64`
 		//  Estimated: `6192`
-		// Minimum execution time: 57_000_000 picoseconds.
-		Weight::from_parts(58_474_000, 0)
+		// Minimum execution time: 54_616_000 picoseconds.
+		Weight::from_parts(55_527_000, 0)
 			.saturating_add(Weight::from_parts(0, 6192))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -122,8 +122,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3591`
-		// Minimum execution time: 45_924_000 picoseconds.
-		Weight::from_parts(46_901_000, 0)
+		// Minimum execution time: 43_969_000 picoseconds.
+		Weight::from_parts(44_675_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -134,8 +134,8 @@ impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `101`
 		//  Estimated: `3591`
-		// Minimum execution time: 15_184_000 picoseconds.
-		Weight::from_parts(15_916_000, 0)
+		// Minimum execution time: 14_381_000 picoseconds.
+		Weight::from_parts(15_124_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/common/src/weights/pallet_certification_cert.rs b/runtime/common/src/weights/pallet_certification.rs
similarity index 82%
rename from runtime/common/src/weights/pallet_certification_cert.rs
rename to runtime/common/src/weights/pallet_certification.rs
index 6e2b21849..3e98b656d 100644
--- a/runtime/common/src/weights/pallet_certification_cert.rs
+++ b/runtime/common/src/weights/pallet_certification.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_certification`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -60,11 +60,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
 	fn add_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `839`
-		//  Estimated: `6779`
-		// Minimum execution time: 32_966_000 picoseconds.
-		Weight::from_parts(34_186_000, 0)
-			.saturating_add(Weight::from_parts(0, 6779))
+		//  Measured:  `818`
+		//  Estimated: `6758`
+		// Minimum execution time: 31_981_000 picoseconds.
+		Weight::from_parts(32_790_000, 0)
+			.saturating_add(Weight::from_parts(0, 6758))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -78,11 +78,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
 	fn del_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `722`
-		//  Estimated: `6662`
-		// Minimum execution time: 24_980_000 picoseconds.
-		Weight::from_parts(26_584_000, 0)
-			.saturating_add(Weight::from_parts(0, 6662))
+		//  Measured:  `701`
+		//  Estimated: `6641`
+		// Minimum execution time: 24_063_000 picoseconds.
+		Weight::from_parts(25_566_000, 0)
+			.saturating_add(Weight::from_parts(0, 6641))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -95,16 +95,15 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Storage: Membership Membership (r:1 w:0)
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
 	/// The range of component `i` is `[2, 1000]`.
-	/// The range of component `i` is `[2, 1000]`.
 	fn remove_all_certs_received_by(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `608 + i * (35 ±0)`
-		//  Estimated: `4079 + i * (2511 ±0)`
-		// Minimum execution time: 26_328_000 picoseconds.
-		Weight::from_parts(27_195_000, 0)
-			.saturating_add(Weight::from_parts(0, 4079))
-			// Standard Error: 16_272
-			.saturating_add(Weight::from_parts(10_921_792, 0).saturating_mul(i.into()))
+		//  Measured:  `587 + i * (35 ±0)`
+		//  Estimated: `4058 + i * (2511 ±0)`
+		// Minimum execution time: 25_001_000 picoseconds.
+		Weight::from_parts(26_485_000, 0)
+			.saturating_add(Weight::from_parts(0, 4058))
+			// Standard Error: 40_688
+			.saturating_add(Weight::from_parts(10_777_344, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -117,8 +116,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `181`
 		//  Estimated: `3646`
-		// Minimum execution time: 4_037_000 picoseconds.
-		Weight::from_parts(4_329_000, 0)
+		// Minimum execution time: 3_994_000 picoseconds.
+		Weight::from_parts(4_240_000, 0)
 			.saturating_add(Weight::from_parts(0, 3646))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -128,8 +127,8 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `279`
 		//  Estimated: `3744`
-		// Minimum execution time: 5_062_000 picoseconds.
-		Weight::from_parts(5_414_000, 0)
+		// Minimum execution time: 5_177_000 picoseconds.
+		Weight::from_parts(5_393_000, 0)
 			.saturating_add(Weight::from_parts(0, 3744))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -144,11 +143,11 @@ impl<T: frame_system::Config> pallet_certification::WeightInfo for WeightInfo<T>
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
 	fn do_remove_cert() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `722`
-		//  Estimated: `6662`
-		// Minimum execution time: 22_358_000 picoseconds.
-		Weight::from_parts(23_558_000, 0)
-			.saturating_add(Weight::from_parts(0, 6662))
+		//  Measured:  `701`
+		//  Estimated: `6641`
+		// Minimum execution time: 23_029_000 picoseconds.
+		Weight::from_parts(23_456_000, 0)
+			.saturating_add(Weight::from_parts(0, 6641))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
diff --git a/runtime/common/src/weights/pallet_collective.rs b/runtime/common/src/weights/pallet_collective.rs
index 4e1b8c60b..5ff320591 100644
--- a/runtime/common/src/weights/pallet_collective.rs
+++ b/runtime/common/src/weights/pallet_collective.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_collective`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -62,14 +62,14 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	fn set_members(m: u32, _n: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + m * (672 ±0) + p * (3191 ±0)`
-		//  Estimated: `10056 + m * (416 ±5) + p * (4183 ±27)`
-		// Minimum execution time: 13_866_000 picoseconds.
-		Weight::from_parts(14_337_000, 0)
-			.saturating_add(Weight::from_parts(0, 10056))
-			// Standard Error: 12_534
-			.saturating_add(Weight::from_parts(988_262, 0).saturating_mul(m.into()))
-			// Standard Error: 61_962
-			.saturating_add(Weight::from_parts(7_498_068, 0).saturating_mul(p.into()))
+		//  Estimated: `10019 + m * (416 ±4) + p * (4183 ±23)`
+		// Minimum execution time: 12_902_000 picoseconds.
+		Weight::from_parts(13_127_000, 0)
+			.saturating_add(Weight::from_parts(0, 10019))
+			// Standard Error: 12_687
+			.saturating_add(Weight::from_parts(953_319, 0).saturating_mul(m.into()))
+			// Standard Error: 62_719
+			.saturating_add(Weight::from_parts(7_492_910, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -83,15 +83,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `m` is `[1, 100]`.
 	fn execute(b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `69 + m * (32 ±0)`
-		//  Estimated: `1555 + m * (32 ±0)`
-		// Minimum execution time: 13_024_000 picoseconds.
-		Weight::from_parts(12_564_697, 0)
-			.saturating_add(Weight::from_parts(0, 1555))
-			// Standard Error: 42
-			.saturating_add(Weight::from_parts(1_552, 0).saturating_mul(b.into()))
-			// Standard Error: 438
-			.saturating_add(Weight::from_parts(13_993, 0).saturating_mul(m.into()))
+		//  Measured:  `32 + m * (32 ±0)`
+		//  Estimated: `1518 + m * (32 ±0)`
+		// Minimum execution time: 11_896_000 picoseconds.
+		Weight::from_parts(8_817_972, 0)
+			.saturating_add(Weight::from_parts(0, 1518))
+			// Standard Error: 209
+			.saturating_add(Weight::from_parts(4_102, 0).saturating_mul(b.into()))
+			// Standard Error: 2_158
+			.saturating_add(Weight::from_parts(30_007, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -101,17 +101,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: TechnicalCommittee ProposalOf (max_values: None, max_size: None, mode: Measured)
 	/// The range of component `b` is `[2, 1024]`.
 	/// The range of component `m` is `[1, 100]`.
-	fn propose_execute(b: u32, m: u32, ) -> Weight {
+	fn propose_execute(_b: u32, m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `69 + m * (32 ±0)`
-		//  Estimated: `3535 + m * (32 ±0)`
-		// Minimum execution time: 15_182_000 picoseconds.
-		Weight::from_parts(14_242_597, 0)
-			.saturating_add(Weight::from_parts(0, 3535))
-			// Standard Error: 116
-			.saturating_add(Weight::from_parts(1_878, 0).saturating_mul(b.into()))
-			// Standard Error: 1_204
-			.saturating_add(Weight::from_parts(25_952, 0).saturating_mul(m.into()))
+		//  Measured:  `32 + m * (32 ±0)`
+		//  Estimated: `3498 + m * (32 ±0)`
+		// Minimum execution time: 14_141_000 picoseconds.
+		Weight::from_parts(17_666_898, 0)
+			.saturating_add(Weight::from_parts(0, 3498))
+			// Standard Error: 2_979
+			.saturating_add(Weight::from_parts(21_157, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
 	}
@@ -130,17 +128,17 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `61 + m * (32 ±0) + p * (55 ±0)`
-		//  Estimated: `3498 + m * (32 ±0) + p * (54 ±0)`
-		// Minimum execution time: 21_473_000 picoseconds.
-		Weight::from_parts(20_563_599, 0)
-			.saturating_add(Weight::from_parts(0, 3498))
-			// Standard Error: 92
-			.saturating_add(Weight::from_parts(2_430, 0).saturating_mul(b.into()))
-			// Standard Error: 968
-			.saturating_add(Weight::from_parts(14_895, 0).saturating_mul(m.into()))
-			// Standard Error: 4_841
-			.saturating_add(Weight::from_parts(264_812, 0).saturating_mul(p.into()))
+		//  Measured:  `24 + m * (32 ±0) + p * (55 ±0)`
+		//  Estimated: `3461 + m * (32 ±0) + p * (54 ±0)`
+		// Minimum execution time: 20_027_000 picoseconds.
+		Weight::from_parts(20_370_128, 0)
+			.saturating_add(Weight::from_parts(0, 3461))
+			// Standard Error: 157
+			.saturating_add(Weight::from_parts(2_048, 0).saturating_mul(b.into()))
+			// Standard Error: 1_648
+			.saturating_add(Weight::from_parts(17_889, 0).saturating_mul(m.into()))
+			// Standard Error: 8_236
+			.saturating_add(Weight::from_parts(251_951, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(4))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into()))
@@ -153,13 +151,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `m` is `[5, 100]`.
 	fn vote(m: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `610 + m * (64 ±0)`
-		//  Estimated: `4074 + m * (64 ±0)`
-		// Minimum execution time: 17_697_000 picoseconds.
-		Weight::from_parts(18_924_050, 0)
-			.saturating_add(Weight::from_parts(0, 4074))
-			// Standard Error: 1_889
-			.saturating_add(Weight::from_parts(39_248, 0).saturating_mul(m.into()))
+		//  Measured:  `573 + m * (64 ±0)`
+		//  Estimated: `4037 + m * (64 ±0)`
+		// Minimum execution time: 16_836_000 picoseconds.
+		Weight::from_parts(18_427_678, 0)
+			.saturating_add(Weight::from_parts(0, 4037))
+			// Standard Error: 1_421
+			.saturating_add(Weight::from_parts(27_925, 0).saturating_mul(m.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -176,15 +174,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn close_early_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `154 + m * (64 ±0) + p * (55 ±0)`
-		//  Estimated: `3628 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 23_592_000 picoseconds.
-		Weight::from_parts(22_710_068, 0)
-			.saturating_add(Weight::from_parts(0, 3628))
-			// Standard Error: 861
-			.saturating_add(Weight::from_parts(31_063, 0).saturating_mul(m.into()))
-			// Standard Error: 4_252
-			.saturating_add(Weight::from_parts(256_439, 0).saturating_mul(p.into()))
+		//  Measured:  `117 + m * (64 ±0) + p * (55 ±0)`
+		//  Estimated: `3591 + m * (64 ±0) + p * (55 ±0)`
+		// Minimum execution time: 21_901_000 picoseconds.
+		Weight::from_parts(21_879_805, 0)
+			.saturating_add(Weight::from_parts(0, 3591))
+			// Standard Error: 1_141
+			.saturating_add(Weight::from_parts(29_689, 0).saturating_mul(m.into()))
+			// Standard Error: 5_634
+			.saturating_add(Weight::from_parts(192_469, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -203,17 +201,17 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `99 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
-		//  Estimated: `3656 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 32_889_000 picoseconds.
-		Weight::from_parts(30_301_704, 0)
-			.saturating_add(Weight::from_parts(0, 3656))
-			// Standard Error: 116
-			.saturating_add(Weight::from_parts(2_652, 0).saturating_mul(b.into()))
-			// Standard Error: 1_235
-			.saturating_add(Weight::from_parts(29_619, 0).saturating_mul(m.into()))
-			// Standard Error: 6_093
-			.saturating_add(Weight::from_parts(393_171, 0).saturating_mul(p.into()))
+		//  Measured:  `62 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
+		//  Estimated: `3619 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
+		// Minimum execution time: 30_737_000 picoseconds.
+		Weight::from_parts(32_095_841, 0)
+			.saturating_add(Weight::from_parts(0, 3619))
+			// Standard Error: 151
+			.saturating_add(Weight::from_parts(1_138, 0).saturating_mul(b.into()))
+			// Standard Error: 1_604
+			.saturating_add(Weight::from_parts(14_534, 0).saturating_mul(m.into()))
+			// Standard Error: 7_913
+			.saturating_add(Weight::from_parts(287_322, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -234,15 +232,15 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn close_disapproved(m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `174 + m * (64 ±0) + p * (55 ±0)`
-		//  Estimated: `3648 + m * (64 ±0) + p * (55 ±0)`
-		// Minimum execution time: 25_488_000 picoseconds.
-		Weight::from_parts(24_761_967, 0)
-			.saturating_add(Weight::from_parts(0, 3648))
-			// Standard Error: 837
-			.saturating_add(Weight::from_parts(36_006, 0).saturating_mul(m.into()))
-			// Standard Error: 4_135
-			.saturating_add(Weight::from_parts(269_238, 0).saturating_mul(p.into()))
+		//  Measured:  `137 + m * (64 ±0) + p * (55 ±0)`
+		//  Estimated: `3611 + m * (64 ±0) + p * (55 ±0)`
+		// Minimum execution time: 24_004_000 picoseconds.
+		Weight::from_parts(22_361_319, 0)
+			.saturating_add(Weight::from_parts(0, 3611))
+			// Standard Error: 1_020
+			.saturating_add(Weight::from_parts(34_806, 0).saturating_mul(m.into()))
+			// Standard Error: 5_037
+			.saturating_add(Weight::from_parts(271_932, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into()))
@@ -263,15 +261,17 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn close_approved(b: u32, m: u32, p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `119 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
-		//  Estimated: `3676 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
-		// Minimum execution time: 35_775_000 picoseconds.
-		Weight::from_parts(36_891_367, 0)
-			.saturating_add(Weight::from_parts(0, 3676))
-			// Standard Error: 152
-			.saturating_add(Weight::from_parts(2_150, 0).saturating_mul(b.into()))
-			// Standard Error: 7_936
-			.saturating_add(Weight::from_parts(374_935, 0).saturating_mul(p.into()))
+		//  Measured:  `82 + b * (1 ±0) + m * (64 ±0) + p * (78 ±0)`
+		//  Estimated: `3639 + b * (1 ±0) + m * (63 ±0) + p * (74 ±0)`
+		// Minimum execution time: 33_250_000 picoseconds.
+		Weight::from_parts(33_613_119, 0)
+			.saturating_add(Weight::from_parts(0, 3639))
+			// Standard Error: 147
+			.saturating_add(Weight::from_parts(1_141, 0).saturating_mul(b.into()))
+			// Standard Error: 1_563
+			.saturating_add(Weight::from_parts(21_793, 0).saturating_mul(m.into()))
+			// Standard Error: 7_712
+			.saturating_add(Weight::from_parts(287_193, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into()))
@@ -287,13 +287,13 @@ impl<T: frame_system::Config> pallet_collective::WeightInfo for WeightInfo<T> {
 	/// The range of component `p` is `[1, 20]`.
 	fn disapprove_proposal(p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `226 + p * (32 ±0)`
-		//  Estimated: `1711 + p * (32 ±0)`
-		// Minimum execution time: 12_863_000 picoseconds.
-		Weight::from_parts(13_986_066, 0)
-			.saturating_add(Weight::from_parts(0, 1711))
-			// Standard Error: 2_333
-			.saturating_add(Weight::from_parts(204_483, 0).saturating_mul(p.into()))
+		//  Measured:  `189 + p * (32 ±0)`
+		//  Estimated: `1674 + p * (32 ±0)`
+		// Minimum execution time: 11_883_000 picoseconds.
+		Weight::from_parts(13_256_929, 0)
+			.saturating_add(Weight::from_parts(0, 1674))
+			// Standard Error: 2_679
+			.saturating_add(Weight::from_parts(170_072, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into()))
diff --git a/runtime/common/src/weights/pallet_distance.rs b/runtime/common/src/weights/pallet_distance.rs
index b26314cda..27aa94475 100644
--- a/runtime/common/src/weights/pallet_distance.rs
+++ b/runtime/common/src/weights/pallet_distance.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_distance`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -62,11 +62,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Distance DistanceStatusExpireOn (max_values: None, max_size: None, mode: Measured)
 	fn request_distance_evaluation() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `940`
-		//  Estimated: `4405`
-		// Minimum execution time: 33_117_000 picoseconds.
-		Weight::from_parts(33_913_000, 0)
-			.saturating_add(Weight::from_parts(0, 4405))
+		//  Measured:  `939`
+		//  Estimated: `4404`
+		// Minimum execution time: 33_043_000 picoseconds.
+		Weight::from_parts(33_977_000, 0)
+			.saturating_add(Weight::from_parts(0, 4404))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -85,13 +85,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 600]`.
 	fn update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `773 + i * (10 ±0)`
-		//  Estimated: `2257 + i * (10 ±0)`
-		// Minimum execution time: 19_710_000 picoseconds.
-		Weight::from_parts(23_931_566, 0)
-			.saturating_add(Weight::from_parts(0, 2257))
-			// Standard Error: 329
-			.saturating_add(Weight::from_parts(117_461, 0).saturating_mul(i.into()))
+		//  Measured:  `772 + i * (10 ±0)`
+		//  Estimated: `2256 + i * (10 ±0)`
+		// Minimum execution time: 22_135_000 picoseconds.
+		Weight::from_parts(27_043_883, 0)
+			.saturating_add(Weight::from_parts(0, 2256))
+			// Standard Error: 1_421
+			.saturating_add(Weight::from_parts(125_435, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(3))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -103,13 +103,13 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// The range of component `i` is `[1, 600]`.
 	fn force_update_evaluation(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `612 + i * (10 ±0)`
-		//  Estimated: `2096 + i * (10 ±0)`
-		// Minimum execution time: 12_468_000 picoseconds.
-		Weight::from_parts(14_558_200, 0)
-			.saturating_add(Weight::from_parts(0, 2096))
-			// Standard Error: 226
-			.saturating_add(Weight::from_parts(115_507, 0).saturating_mul(i.into()))
+		//  Measured:  `611 + i * (10 ±0)`
+		//  Estimated: `2095 + i * (10 ±0)`
+		// Minimum execution time: 13_033_000 picoseconds.
+		Weight::from_parts(15_741_933, 0)
+			.saturating_add(Weight::from_parts(0, 2095))
+			// Standard Error: 693
+			.saturating_add(Weight::from_parts(121_989, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 10).saturating_mul(i.into()))
@@ -122,11 +122,11 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Distance IdentityDistanceStatus (max_values: None, max_size: None, mode: Measured)
 	fn force_set_distance_status() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `586`
-		//  Estimated: `4051`
-		// Minimum execution time: 12_950_000 picoseconds.
-		Weight::from_parts(13_434_000, 0)
-			.saturating_add(Weight::from_parts(0, 4051))
+		//  Measured:  `585`
+		//  Estimated: `4050`
+		// Minimum execution time: 12_886_000 picoseconds.
+		Weight::from_parts(13_465_000, 0)
+			.saturating_add(Weight::from_parts(0, 4050))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -136,8 +136,8 @@ impl<T: frame_system::Config> pallet_distance::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `170`
 		//  Estimated: `1655`
-		// Minimum execution time: 3_781_000 picoseconds.
-		Weight::from_parts(4_122_000, 0)
+		// Minimum execution time: 3_830_000 picoseconds.
+		Weight::from_parts(4_065_000, 0)
 			.saturating_add(Weight::from_parts(0, 1655))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/common/src/weights/pallet_duniter_account.rs b/runtime/common/src/weights/pallet_duniter_account.rs
index e7e479adc..4b0bc7d38 100644
--- a/runtime/common/src/weights/pallet_duniter_account.rs
+++ b/runtime/common/src/weights/pallet_duniter_account.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_duniter_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -54,8 +54,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `3591`
-		// Minimum execution time: 3_441_000 picoseconds.
-		Weight::from_parts(3_767_000, 0)
+		// Minimum execution time: 3_390_000 picoseconds.
+		Weight::from_parts(3_644_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -81,11 +81,11 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42 + i * (309 ±0)`
 		//  Estimated: `3507 + i * (1908 ±0)`
-		// Minimum execution time: 2_567_000 picoseconds.
-		Weight::from_parts(2_883_846, 0)
+		// Minimum execution time: 2_538_000 picoseconds.
+		Weight::from_parts(2_921_636, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
-			// Standard Error: 21_979
-			.saturating_add(Weight::from_parts(16_532_853, 0).saturating_mul(i.into()))
+			// Standard Error: 23_209
+			.saturating_add(Weight::from_parts(17_412_363, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(i.into())))
@@ -112,11 +112,11 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42 + i * (309 ±0)`
 		//  Estimated: `3507 + i * (1908 ±0)`
-		// Minimum execution time: 2_540_000 picoseconds.
-		Weight::from_parts(2_881_795, 0)
+		// Minimum execution time: 2_592_000 picoseconds.
+		Weight::from_parts(2_922_189, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
-			// Standard Error: 23_750
-			.saturating_add(Weight::from_parts(39_865_404, 0).saturating_mul(i.into()))
+			// Standard Error: 29_198
+			.saturating_add(Weight::from_parts(40_273_310, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().reads((6_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes((6_u64).saturating_mul(i.into())))
@@ -129,11 +129,11 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42 + i * (74 ±0)`
 		//  Estimated: `3507 + i * (74 ±0)`
-		// Minimum execution time: 2_530_000 picoseconds.
-		Weight::from_parts(2_866_518, 0)
+		// Minimum execution time: 2_541_000 picoseconds.
+		Weight::from_parts(2_804_765, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
-			// Standard Error: 16_435
-			.saturating_add(Weight::from_parts(8_908_081, 0).saturating_mul(i.into()))
+			// Standard Error: 17_736
+			.saturating_add(Weight::from_parts(8_896_434, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 			.saturating_add(Weight::from_parts(0, 74).saturating_mul(i.into()))
@@ -144,8 +144,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `116`
 		//  Estimated: `3581`
-		// Minimum execution time: 10_202_000 picoseconds.
-		Weight::from_parts(10_849_000, 0)
+		// Minimum execution time: 10_150_000 picoseconds.
+		Weight::from_parts(10_585_000, 0)
 			.saturating_add(Weight::from_parts(0, 3581))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -156,8 +156,8 @@ impl<T: frame_system::Config> pallet_duniter_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 2_181_000 picoseconds.
-		Weight::from_parts(2_397_000, 0)
+		// Minimum execution time: 2_170_000 picoseconds.
+		Weight::from_parts(2_331_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
diff --git a/runtime/common/src/weights/pallet_identity.rs b/runtime/common/src/weights/pallet_identity.rs
index 2b883dcc7..159094ef9 100644
--- a/runtime/common/src/weights/pallet_identity.rs
+++ b/runtime/common/src/weights/pallet_identity.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_identity`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -68,18 +68,16 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Cert StorageCertsRemovableOn (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Cert CertsByReceiver (r:1 w:1)
 	/// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithCert StorageIdtyCertMeta (r:1 w:0)
-	/// Proof Skipped: SmithCert StorageIdtyCertMeta (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Quota IdtyQuota (r:0 w:1)
 	/// Proof: Quota IdtyQuota (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen)
 	fn create_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1165`
-		//  Estimated: `7105`
-		// Minimum execution time: 80_562_000 picoseconds.
-		Weight::from_parts(93_717_000, 0)
-			.saturating_add(Weight::from_parts(0, 7105))
-			.saturating_add(T::DbWeight::get().reads(14))
+		//  Measured:  `961`
+		//  Estimated: `6901`
+		// Minimum execution time: 70_549_000 picoseconds.
+		Weight::from_parts(72_921_000, 0)
+			.saturating_add(Weight::from_parts(0, 6901))
+			.saturating_add(T::DbWeight::get().reads(13))
 			.saturating_add(T::DbWeight::get().writes(12))
 	}
 	/// Storage: Identity IdentityIndexOf (r:1 w:0)
@@ -94,8 +92,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `661`
 		//  Estimated: `6601`
-		// Minimum execution time: 29_211_000 picoseconds.
-		Weight::from_parts(31_414_000, 0)
+		// Minimum execution time: 27_794_000 picoseconds.
+		Weight::from_parts(28_779_000, 0)
 			.saturating_add(Weight::from_parts(0, 6601))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -104,20 +102,18 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Identity Identities (r:1 w:1)
 	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:0)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
 	/// Storage: System BlockHash (r:1 w:0)
 	/// Proof: System BlockHash (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen)
 	/// Storage: System Account (r:2 w:2)
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	fn change_owner_key() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `837`
-		//  Estimated: `6777`
-		// Minimum execution time: 91_798_000 picoseconds.
-		Weight::from_parts(104_299_000, 0)
-			.saturating_add(Weight::from_parts(0, 6777))
-			.saturating_add(T::DbWeight::get().reads(7))
+		//  Measured:  `690`
+		//  Estimated: `6630`
+		// Minimum execution time: 82_416_000 picoseconds.
+		Weight::from_parts(84_057_000, 0)
+			.saturating_add(Weight::from_parts(0, 6630))
+			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: Identity Identities (r:1 w:1)
@@ -128,19 +124,17 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity IdentityChangeSchedule (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Membership Membership (r:1 w:1)
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:1)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Quota IdtyQuota (r:0 w:1)
 	/// Proof: Quota IdtyQuota (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen)
 	fn revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `778`
-		//  Estimated: `6718`
-		// Minimum execution time: 77_566_000 picoseconds.
-		Weight::from_parts(80_738_000, 0)
-			.saturating_add(Weight::from_parts(0, 6718))
-			.saturating_add(T::DbWeight::get().reads(6))
-			.saturating_add(T::DbWeight::get().writes(6))
+		//  Measured:  `631`
+		//  Estimated: `6571`
+		// Minimum execution time: 68_774_000 picoseconds.
+		Weight::from_parts(69_972_000, 0)
+			.saturating_add(Weight::from_parts(0, 6571))
+			.saturating_add(T::DbWeight::get().reads(5))
+			.saturating_add(T::DbWeight::get().writes(5))
 	}
 	/// Storage: Identity IdentitiesNames (r:0 w:998)
 	/// Proof Skipped: Identity IdentitiesNames (max_values: None, max_size: None, mode: Measured)
@@ -149,11 +143,11 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 2_022_000 picoseconds.
-		Weight::from_parts(2_149_000, 0)
+		// Minimum execution time: 1_811_000 picoseconds.
+		Weight::from_parts(1_950_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 972
-			.saturating_add(Weight::from_parts(1_331_794, 0).saturating_mul(i.into()))
+			// Standard Error: 2_030
+			.saturating_add(Weight::from_parts(1_351_984, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into())))
 	}
 	/// Storage: System Account (r:1 w:1)
@@ -162,8 +156,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `67`
 		//  Estimated: `3591`
-		// Minimum execution time: 6_683_000 picoseconds.
-		Weight::from_parts(7_169_000, 0)
+		// Minimum execution time: 6_511_000 picoseconds.
+		Weight::from_parts(6_991_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -178,8 +172,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `371`
 		//  Estimated: `3836`
-		// Minimum execution time: 59_456_000 picoseconds.
-		Weight::from_parts(62_204_000, 0)
+		// Minimum execution time: 55_780_000 picoseconds.
+		Weight::from_parts(57_903_000, 0)
 			.saturating_add(Weight::from_parts(0, 3836))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -188,8 +182,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 131_000 picoseconds.
-		Weight::from_parts(152_000, 0)
+		// Minimum execution time: 128_000 picoseconds.
+		Weight::from_parts(148_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: Identity Identities (r:1 w:0)
@@ -198,8 +192,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `269`
 		//  Estimated: `3734`
-		// Minimum execution time: 4_237_000 picoseconds.
-		Weight::from_parts(4_452_000, 0)
+		// Minimum execution time: 4_299_000 picoseconds.
+		Weight::from_parts(4_466_000, 0)
 			.saturating_add(Weight::from_parts(0, 3734))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -215,20 +209,14 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Membership MembershipsExpireOn (max_values: None, max_size: None, mode: Measured)
 	/// Storage: UniversalDividend CurrentUdIndex (r:1 w:0)
 	/// Proof: UniversalDividend CurrentUdIndex (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
-	/// Storage: SmithMembership Membership (r:1 w:1)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership CounterForMembership (r:1 w:1)
-	/// Proof: SmithMembership CounterForMembership (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: SmithMembership MembershipsExpireOn (r:1 w:1)
-	/// Proof Skipped: SmithMembership MembershipsExpireOn (max_values: None, max_size: None, mode: Measured)
+	/// Storage: SmithMembers Smiths (r:3 w:3)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers Members (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OutgoingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers OutgoingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AuthorityMembers AuthoritiesCounter (r:1 w:1)
-	/// Proof Skipped: AuthorityMembers AuthoritiesCounter (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers IncomingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: Session NextKeys (r:1 w:1)
@@ -241,13 +229,13 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
 	fn do_revoke_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1525`
-		//  Estimated: `7465`
-		// Minimum execution time: 95_659_000 picoseconds.
-		Weight::from_parts(102_307_000, 0)
-			.saturating_add(Weight::from_parts(0, 7465))
-			.saturating_add(T::DbWeight::get().reads(17))
-			.saturating_add(T::DbWeight::get().writes(20))
+		//  Measured:  `1539`
+		//  Estimated: `9954`
+		// Minimum execution time: 86_893_000 picoseconds.
+		Weight::from_parts(89_617_000, 0)
+			.saturating_add(Weight::from_parts(0, 9954))
+			.saturating_add(T::DbWeight::get().reads(16))
+			.saturating_add(T::DbWeight::get().writes(19))
 	}
 	/// Storage: Identity Identities (r:1 w:0)
 	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
@@ -255,8 +243,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `269`
 		//  Estimated: `3734`
-		// Minimum execution time: 4_394_000 picoseconds.
-		Weight::from_parts(4_642_000, 0)
+		// Minimum execution time: 4_166_000 picoseconds.
+		Weight::from_parts(4_435_000, 0)
 			.saturating_add(Weight::from_parts(0, 3734))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -272,20 +260,14 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof: Membership CounterForMembership (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
 	/// Storage: Membership MembershipsExpireOn (r:1 w:1)
 	/// Proof Skipped: Membership MembershipsExpireOn (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:1)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership CounterForMembership (r:1 w:1)
-	/// Proof: SmithMembership CounterForMembership (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
-	/// Storage: SmithMembership MembershipsExpireOn (r:1 w:1)
-	/// Proof Skipped: SmithMembership MembershipsExpireOn (max_values: None, max_size: None, mode: Measured)
+	/// Storage: SmithMembers Smiths (r:3 w:3)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers Members (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers OutgoingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers OutgoingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
-	/// Storage: AuthorityMembers AuthoritiesCounter (r:1 w:1)
-	/// Proof Skipped: AuthorityMembers AuthoritiesCounter (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: AuthorityMembers IncomingAuthorities (r:1 w:1)
 	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
 	/// Storage: Session NextKeys (r:1 w:1)
@@ -298,13 +280,13 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
 	fn do_remove_identity() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1432`
-		//  Estimated: `6192`
-		// Minimum execution time: 99_220_000 picoseconds.
-		Weight::from_parts(103_629_000, 0)
-			.saturating_add(Weight::from_parts(0, 6192))
-			.saturating_add(T::DbWeight::get().reads(16))
-			.saturating_add(T::DbWeight::get().writes(22))
+		//  Measured:  `1446`
+		//  Estimated: `9861`
+		// Minimum execution time: 96_928_000 picoseconds.
+		Weight::from_parts(99_588_000, 0)
+			.saturating_add(Weight::from_parts(0, 9861))
+			.saturating_add(T::DbWeight::get().reads(15))
+			.saturating_add(T::DbWeight::get().writes(21))
 	}
 	/// Storage: Identity IdentityChangeSchedule (r:1 w:0)
 	/// Proof Skipped: Identity IdentityChangeSchedule (max_values: None, max_size: None, mode: Measured)
@@ -312,8 +294,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `108`
 		//  Estimated: `3573`
-		// Minimum execution time: 2_146_000 picoseconds.
-		Weight::from_parts(2_339_000, 0)
+		// Minimum execution time: 2_232_000 picoseconds.
+		Weight::from_parts(2_383_000, 0)
 			.saturating_add(Weight::from_parts(0, 3573))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
@@ -325,8 +307,8 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `292`
 		//  Estimated: `3757`
-		// Minimum execution time: 6_269_000 picoseconds.
-		Weight::from_parts(6_723_000, 0)
+		// Minimum execution time: 6_383_000 picoseconds.
+		Weight::from_parts(6_735_000, 0)
 			.saturating_add(Weight::from_parts(0, 3757))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -343,22 +325,18 @@ impl<T: frame_system::Config> pallet_identity::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Membership Membership (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Cert CertsByReceiver (r:1 w:0)
 	/// Proof Skipped: Cert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithMembership Membership (r:1 w:1)
-	/// Proof Skipped: SmithMembership Membership (max_values: None, max_size: None, mode: Measured)
-	/// Storage: SmithCert CertsByReceiver (r:1 w:0)
-	/// Proof Skipped: SmithCert CertsByReceiver (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Identity IdentityIndexOf (r:0 w:1)
 	/// Proof Skipped: Identity IdentityIndexOf (max_values: None, max_size: None, mode: Measured)
 	/// Storage: Quota IdtyQuota (r:0 w:1)
 	/// Proof: Quota IdtyQuota (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen)
 	fn prune_identities_err() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1177`
-		//  Estimated: `4642`
-		// Minimum execution time: 46_324_000 picoseconds.
-		Weight::from_parts(47_896_000, 0)
-			.saturating_add(Weight::from_parts(0, 4642))
-			.saturating_add(T::DbWeight::get().reads(8))
-			.saturating_add(T::DbWeight::get().writes(8))
+		//  Measured:  `795`
+		//  Estimated: `4260`
+		// Minimum execution time: 36_427_000 picoseconds.
+		Weight::from_parts(38_481_000, 0)
+			.saturating_add(Weight::from_parts(0, 4260))
+			.saturating_add(T::DbWeight::get().reads(6))
+			.saturating_add(T::DbWeight::get().writes(7))
 	}
 }
diff --git a/runtime/common/src/weights/pallet_im_online.rs b/runtime/common/src/weights/pallet_im_online.rs
index c5b89d2e8..e8d3be5c5 100644
--- a/runtime/common/src/weights/pallet_im_online.rs
+++ b/runtime/common/src/weights/pallet_im_online.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_im_online`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -64,15 +64,15 @@ impl<T: frame_system::Config> pallet_im_online::WeightInfo for WeightInfo<T> {
 	/// The range of component `e` is `[1, 100]`.
 	fn validate_unsigned_and_then_heartbeat(k: u32, e: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `623 + k * (32 ±0)`
+		//  Measured:  `603 + k * (32 ±0)`
 		//  Estimated: `10024497 + e * (35 ±0) + k * (32 ±0)`
-		// Minimum execution time: 91_864_000 picoseconds.
-		Weight::from_parts(96_924_020, 0)
+		// Minimum execution time: 90_994_000 picoseconds.
+		Weight::from_parts(81_184_429, 0)
 			.saturating_add(Weight::from_parts(0, 10024497))
-			// Standard Error: 690
-			.saturating_add(Weight::from_parts(25_104, 0).saturating_mul(k.into()))
-			// Standard Error: 6_954
-			.saturating_add(Weight::from_parts(331_384, 0).saturating_mul(e.into()))
+			// Standard Error: 981
+			.saturating_add(Weight::from_parts(24_987, 0).saturating_mul(k.into()))
+			// Standard Error: 9_890
+			.saturating_add(Weight::from_parts(313_213, 0).saturating_mul(e.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(1))
 			.saturating_add(Weight::from_parts(0, 35).saturating_mul(e.into()))
diff --git a/runtime/common/src/weights/pallet_membership_membership.rs b/runtime/common/src/weights/pallet_membership.rs
similarity index 64%
rename from runtime/common/src/weights/pallet_membership_membership.rs
rename to runtime/common/src/weights/pallet_membership.rs
index eb38bcfab..13a754597 100644
--- a/runtime/common/src/weights/pallet_membership_membership.rs
+++ b/runtime/common/src/weights/pallet_membership.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_membership`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -70,11 +70,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity IdentityChangeSchedule (max_values: None, max_size: None, mode: Measured)
 	fn claim_membership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `1272`
-		//  Estimated: `4737`
-		// Minimum execution time: 54_796_000 picoseconds.
-		Weight::from_parts(56_965_000, 0)
-			.saturating_add(Weight::from_parts(0, 4737))
+		//  Measured:  `1251`
+		//  Estimated: `4716`
+		// Minimum execution time: 54_473_000 picoseconds.
+		Weight::from_parts(56_761_000, 0)
+			.saturating_add(Weight::from_parts(0, 4716))
 			.saturating_add(T::DbWeight::get().reads(10))
 			.saturating_add(T::DbWeight::get().writes(4))
 	}
@@ -92,11 +92,11 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Parameters ParametersStorage (max_values: Some(1), max_size: None, mode: Measured)
 	fn renew_membership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `988`
-		//  Estimated: `6928`
-		// Minimum execution time: 32_656_000 picoseconds.
-		Weight::from_parts(34_374_000, 0)
-			.saturating_add(Weight::from_parts(0, 6928))
+		//  Measured:  `967`
+		//  Estimated: `6907`
+		// Minimum execution time: 32_278_000 picoseconds.
+		Weight::from_parts(33_783_000, 0)
+			.saturating_add(Weight::from_parts(0, 6907))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(3))
 	}
@@ -112,24 +112,38 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
 	/// Storage: UniversalDividend CurrentUdIndex (r:1 w:0)
 	/// Proof: UniversalDividend CurrentUdIndex (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
+	/// Storage: SmithMembers Smiths (r:3 w:3)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers Members (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers IncomingAuthorities (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: Session NextKeys (r:1 w:1)
+	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
+	/// Storage: System Account (r:1 w:1)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Identity IdentityChangeSchedule (r:2 w:1)
 	/// Proof Skipped: Identity IdentityChangeSchedule (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)
 	fn revoke_membership() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `703`
-		//  Estimated: `6643`
-		// Minimum execution time: 33_591_000 picoseconds.
-		Weight::from_parts(34_941_000, 0)
-			.saturating_add(Weight::from_parts(0, 6643))
-			.saturating_add(T::DbWeight::get().reads(8))
-			.saturating_add(T::DbWeight::get().writes(5))
+		//  Measured:  `1647`
+		//  Estimated: `10062`
+		// Minimum execution time: 82_810_000 picoseconds.
+		Weight::from_parts(86_447_000, 0)
+			.saturating_add(Weight::from_parts(0, 10062))
+			.saturating_add(T::DbWeight::get().reads(16))
+			.saturating_add(T::DbWeight::get().writes(17))
 	}
 	fn on_initialize() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 132_000 picoseconds.
-		Weight::from_parts(163_000, 0)
+		// Minimum execution time: 125_000 picoseconds.
+		Weight::from_parts(155_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: Membership MembershipsExpireOn (r:2 w:2)
@@ -142,23 +156,38 @@ impl<T: frame_system::Config> pallet_membership::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Identity Identities (max_values: None, max_size: None, mode: Measured)
 	/// Storage: UniversalDividend CurrentUdIndex (r:1 w:0)
 	/// Proof: UniversalDividend CurrentUdIndex (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
+	/// Storage: SmithMembers Smiths (r:3 w:3)
+	/// Proof Skipped: SmithMembers Smiths (max_values: None, max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers Members (r:3 w:3)
+	/// Proof Skipped: AuthorityMembers Members (max_values: None, max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers OnlineAuthorities (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers OnlineAuthorities (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers OutgoingAuthorities (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers OutgoingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: AuthorityMembers IncomingAuthorities (r:1 w:1)
+	/// Proof Skipped: AuthorityMembers IncomingAuthorities (max_values: Some(1), max_size: None, mode: Measured)
+	/// Storage: Session NextKeys (r:3 w:3)
+	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
+	/// Storage: System Account (r:3 w:3)
+	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// Storage: Identity IdentityChangeSchedule (r:2 w:1)
 	/// Proof Skipped: Identity IdentityChangeSchedule (max_values: None, max_size: None, mode: Measured)
-	/// The range of component `i` is `[0, 3]`.
+	/// Storage: Session KeyOwner (r:0 w:12)
+	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
 	/// The range of component `i` is `[0, 3]`.
 	fn expire_memberships(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `138 + i * (239 ±0)`
-		//  Estimated: `6490 + i * (2508 ±0)`
-		// Minimum execution time: 4_673_000 picoseconds.
-		Weight::from_parts(7_205_864, 0)
-			.saturating_add(Weight::from_parts(0, 6490))
-			// Standard Error: 93_140
-			.saturating_add(Weight::from_parts(21_822_424, 0).saturating_mul(i.into()))
-			.saturating_add(T::DbWeight::get().reads(2))
-			.saturating_add(T::DbWeight::get().reads((4_u64).saturating_mul(i.into())))
-			.saturating_add(T::DbWeight::get().writes(2))
-			.saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(i.into())))
-			.saturating_add(Weight::from_parts(0, 2508).saturating_mul(i.into()))
+		//  Measured:  `138 + i * (813 ±0)`
+		//  Estimated: `9694 + i * (2720 ±46)`
+		// Minimum execution time: 4_624_000 picoseconds.
+		Weight::from_parts(10_695_038, 0)
+			.saturating_add(Weight::from_parts(0, 9694))
+			// Standard Error: 405_934
+			.saturating_add(Weight::from_parts(66_220_541, 0).saturating_mul(i.into()))
+			.saturating_add(T::DbWeight::get().reads(3))
+			.saturating_add(T::DbWeight::get().reads((10_u64).saturating_mul(i.into())))
+			.saturating_add(T::DbWeight::get().writes(3))
+			.saturating_add(T::DbWeight::get().writes((13_u64).saturating_mul(i.into())))
+			.saturating_add(Weight::from_parts(0, 2720).saturating_mul(i.into()))
 	}
 }
diff --git a/runtime/common/src/weights/pallet_multisig.rs b/runtime/common/src/weights/pallet_multisig.rs
index e7310b7e9..c17b1a0c4 100644
--- a/runtime/common/src/weights/pallet_multisig.rs
+++ b/runtime/common/src/weights/pallet_multisig.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_multisig`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,11 +53,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_177_000 picoseconds.
-		Weight::from_parts(5_834_786, 0)
+		// Minimum execution time: 5_056_000 picoseconds.
+		Weight::from_parts(5_644_464, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3
-			.saturating_add(Weight::from_parts(356, 0).saturating_mul(z.into()))
+			// Standard Error: 2
+			.saturating_add(Weight::from_parts(319, 0).saturating_mul(z.into()))
 	}
 	/// Storage: Multisig Multisigs (r:1 w:1)
 	/// Proof: Multisig Multisigs (max_values: None, max_size: Some(457), added: 2932, mode: MaxEncodedLen)
@@ -67,13 +67,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `126 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 27_158_000 picoseconds.
-		Weight::from_parts(27_891_561, 0)
+		// Minimum execution time: 26_421_000 picoseconds.
+		Weight::from_parts(26_520_982, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 19_335
-			.saturating_add(Weight::from_parts(174_782, 0).saturating_mul(s.into()))
-			// Standard Error: 16
-			.saturating_add(Weight::from_parts(1_071, 0).saturating_mul(z.into()))
+			// Standard Error: 6_950
+			.saturating_add(Weight::from_parts(144_934, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(1_048, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -85,13 +85,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 17_025_000 picoseconds.
-		Weight::from_parts(15_892_153, 0)
+		// Minimum execution time: 16_507_000 picoseconds.
+		Weight::from_parts(15_704_876, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 7_878
-			.saturating_add(Weight::from_parts(190_064, 0).saturating_mul(s.into()))
-			// Standard Error: 5
-			.saturating_add(Weight::from_parts(1_130, 0).saturating_mul(z.into()))
+			// Standard Error: 4_404
+			.saturating_add(Weight::from_parts(144_220, 0).saturating_mul(s.into()))
+			// Standard Error: 3
+			.saturating_add(Weight::from_parts(1_053, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -105,13 +105,13 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `260 + s * (37 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 30_436_000 picoseconds.
-		Weight::from_parts(30_300_694, 0)
+		// Minimum execution time: 29_296_000 picoseconds.
+		Weight::from_parts(29_056_377, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 15_240
-			.saturating_add(Weight::from_parts(289_776, 0).saturating_mul(s.into()))
-			// Standard Error: 13
-			.saturating_add(Weight::from_parts(1_088, 0).saturating_mul(z.into()))
+			// Standard Error: 7_069
+			.saturating_add(Weight::from_parts(191_560, 0).saturating_mul(s.into()))
+			// Standard Error: 6
+			.saturating_add(Weight::from_parts(1_055, 0).saturating_mul(z.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -122,11 +122,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `131 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 24_652_000 picoseconds.
-		Weight::from_parts(26_397_911, 0)
+		// Minimum execution time: 24_475_000 picoseconds.
+		Weight::from_parts(25_989_669, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 6_558
-			.saturating_add(Weight::from_parts(180_768, 0).saturating_mul(s.into()))
+			// Standard Error: 11_138
+			.saturating_add(Weight::from_parts(107_936, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -137,11 +137,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `240`
 		//  Estimated: `3922`
-		// Minimum execution time: 14_288_000 picoseconds.
-		Weight::from_parts(15_032_294, 0)
+		// Minimum execution time: 13_931_000 picoseconds.
+		Weight::from_parts(14_642_004, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 4_354
-			.saturating_add(Weight::from_parts(195_730, 0).saturating_mul(s.into()))
+			// Standard Error: 4_290
+			.saturating_add(Weight::from_parts(168_058, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -152,11 +152,11 @@ impl<T: frame_system::Config> pallet_multisig::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `329 + s * (5 ±0)`
 		//  Estimated: `3922`
-		// Minimum execution time: 26_020_000 picoseconds.
-		Weight::from_parts(27_293_716, 0)
+		// Minimum execution time: 25_240_000 picoseconds.
+		Weight::from_parts(26_028_150, 0)
 			.saturating_add(Weight::from_parts(0, 3922))
-			// Standard Error: 8_931
-			.saturating_add(Weight::from_parts(197_242, 0).saturating_mul(s.into()))
+			// Standard Error: 5_956
+			.saturating_add(Weight::from_parts(189_014, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/common/src/weights/pallet_oneshot_account.rs b/runtime/common/src/weights/pallet_oneshot_account.rs
index 277397d8b..042ae758b 100644
--- a/runtime/common/src/weights/pallet_oneshot_account.rs
+++ b/runtime/common/src/weights/pallet_oneshot_account.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_oneshot_account`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -54,8 +54,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3507`
-		// Minimum execution time: 20_365_000 picoseconds.
-		Weight::from_parts(22_411_000, 0)
+		// Minimum execution time: 19_845_000 picoseconds.
+		Weight::from_parts(21_003_000, 0)
 			.saturating_add(Weight::from_parts(0, 3507))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -70,8 +70,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `242`
 		//  Estimated: `3707`
-		// Minimum execution time: 25_687_000 picoseconds.
-		Weight::from_parts(27_029_000, 0)
+		// Minimum execution time: 25_052_000 picoseconds.
+		Weight::from_parts(25_901_000, 0)
 			.saturating_add(Weight::from_parts(0, 3707))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -86,8 +86,8 @@ impl<T: frame_system::Config> pallet_oneshot_account::WeightInfo for WeightInfo<
 		// Proof Size summary in bytes:
 		//  Measured:  `306`
 		//  Estimated: `6192`
-		// Minimum execution time: 36_894_000 picoseconds.
-		Weight::from_parts(37_625_000, 0)
+		// Minimum execution time: 35_971_000 picoseconds.
+		Weight::from_parts(36_685_000, 0)
 			.saturating_add(Weight::from_parts(0, 6192))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/common/src/weights/pallet_preimage.rs b/runtime/common/src/weights/pallet_preimage.rs
index eaf51a341..c5430a227 100644
--- a/runtime/common/src/weights/pallet_preimage.rs
+++ b/runtime/common/src/weights/pallet_preimage.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_preimage`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -57,11 +57,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `3548`
-		// Minimum execution time: 23_110_000 picoseconds.
-		Weight::from_parts(23_764_000, 0)
+		// Minimum execution time: 22_524_000 picoseconds.
+		Weight::from_parts(23_048_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_381, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_284, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -74,11 +74,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 13_780_000 picoseconds.
-		Weight::from_parts(14_266_000, 0)
+		// Minimum execution time: 13_218_000 picoseconds.
+		Weight::from_parts(13_666_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_376, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_283, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -91,11 +91,11 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 12_881_000 picoseconds.
-		Weight::from_parts(13_026_000, 0)
+		// Minimum execution time: 12_330_000 picoseconds.
+		Weight::from_parts(12_559_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
-			// Standard Error: 2
-			.saturating_add(Weight::from_parts(1_384, 0).saturating_mul(s.into()))
+			// Standard Error: 1
+			.saturating_add(Weight::from_parts(1_282, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `242`
 		//  Estimated: `3548`
-		// Minimum execution time: 47_666_000 picoseconds.
-		Weight::from_parts(52_266_000, 0)
+		// Minimum execution time: 37_006_000 picoseconds.
+		Weight::from_parts(39_180_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -121,8 +121,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 34_525_000 picoseconds.
-		Weight::from_parts(36_984_000, 0)
+		// Minimum execution time: 23_783_000 picoseconds.
+		Weight::from_parts(25_184_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -133,8 +133,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `180`
 		//  Estimated: `3548`
-		// Minimum execution time: 26_451_000 picoseconds.
-		Weight::from_parts(30_958_000, 0)
+		// Minimum execution time: 20_838_000 picoseconds.
+		Weight::from_parts(22_760_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -145,8 +145,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 16_274_000 picoseconds.
-		Weight::from_parts(19_720_000, 0)
+		// Minimum execution time: 12_267_000 picoseconds.
+		Weight::from_parts(13_971_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -157,8 +157,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `42`
 		//  Estimated: `3548`
-		// Minimum execution time: 10_493_000 picoseconds.
-		Weight::from_parts(13_230_000, 0)
+		// Minimum execution time: 9_167_000 picoseconds.
+		Weight::from_parts(10_284_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -169,8 +169,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 6_882_000 picoseconds.
-		Weight::from_parts(8_643_000, 0)
+		// Minimum execution time: 6_531_000 picoseconds.
+		Weight::from_parts(7_327_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -183,8 +183,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `144`
 		//  Estimated: `3548`
-		// Minimum execution time: 28_586_000 picoseconds.
-		Weight::from_parts(31_062_000, 0)
+		// Minimum execution time: 22_599_000 picoseconds.
+		Weight::from_parts(23_941_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -195,8 +195,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 6_596_000 picoseconds.
-		Weight::from_parts(8_069_000, 0)
+		// Minimum execution time: 6_732_000 picoseconds.
+		Weight::from_parts(7_433_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -207,8 +207,8 @@ impl<T: frame_system::Config> pallet_preimage::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `106`
 		//  Estimated: `3548`
-		// Minimum execution time: 6_989_000 picoseconds.
-		Weight::from_parts(8_342_000, 0)
+		// Minimum execution time: 6_543_000 picoseconds.
+		Weight::from_parts(7_065_000, 0)
 			.saturating_add(Weight::from_parts(0, 3548))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
diff --git a/runtime/common/src/weights/pallet_provide_randomness.rs b/runtime/common/src/weights/pallet_provide_randomness.rs
index 5294f58b2..d946aa15f 100644
--- a/runtime/common/src/weights/pallet_provide_randomness.rs
+++ b/runtime/common/src/weights/pallet_provide_randomness.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_provide_randomness`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `235`
 		//  Estimated: `3700`
-		// Minimum execution time: 39_666_000 picoseconds.
-		Weight::from_parts(41_056_000, 0)
+		// Minimum execution time: 40_833_000 picoseconds.
+		Weight::from_parts(42_469_000, 0)
 			.saturating_add(Weight::from_parts(0, 3700))
 			.saturating_add(T::DbWeight::get().reads(6))
 			.saturating_add(T::DbWeight::get().writes(4))
@@ -87,11 +87,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `383 + i * (59 ±0)`
 		//  Estimated: `1869 + i * (2535 ±0)`
-		// Minimum execution time: 21_528_000 picoseconds.
-		Weight::from_parts(16_137_220, 0)
+		// Minimum execution time: 21_932_000 picoseconds.
+		Weight::from_parts(23_109_832, 0)
 			.saturating_add(Weight::from_parts(0, 1869))
-			// Standard Error: 10_917
-			.saturating_add(Weight::from_parts(9_007_362, 0).saturating_mul(i.into()))
+			// Standard Error: 43_078
+			.saturating_add(Weight::from_parts(8_992_389, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
@@ -121,11 +121,11 @@ impl<T: frame_system::Config> pallet_provide_randomness::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `393 + i * (59 ±0)`
 		//  Estimated: `3859 + i * (2535 ±0)`
-		// Minimum execution time: 23_210_000 picoseconds.
-		Weight::from_parts(19_962_422, 0)
+		// Minimum execution time: 23_432_000 picoseconds.
+		Weight::from_parts(15_220_509, 0)
 			.saturating_add(Weight::from_parts(0, 3859))
-			// Standard Error: 10_432
-			.saturating_add(Weight::from_parts(9_390_408, 0).saturating_mul(i.into()))
+			// Standard Error: 25_456
+			.saturating_add(Weight::from_parts(9_233_304, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(i.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/common/src/weights/pallet_proxy.rs b/runtime/common/src/weights/pallet_proxy.rs
index 31c8b8143..26c3a13b3 100644
--- a/runtime/common/src/weights/pallet_proxy.rs
+++ b/runtime/common/src/weights/pallet_proxy.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_proxy`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -55,11 +55,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 12_847_000 picoseconds.
-		Weight::from_parts(14_212_452, 0)
+		// Minimum execution time: 12_728_000 picoseconds.
+		Weight::from_parts(13_637_861, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 1_812
-			.saturating_add(Weight::from_parts(31_549, 0).saturating_mul(p.into()))
+			// Standard Error: 1_579
+			.saturating_add(Weight::from_parts(31_925, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 	}
 	/// Storage: Proxy Proxies (r:1 w:0)
@@ -74,13 +74,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `400 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 30_630_000 picoseconds.
-		Weight::from_parts(31_345_803, 0)
+		// Minimum execution time: 29_520_000 picoseconds.
+		Weight::from_parts(30_632_848, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 3_186
-			.saturating_add(Weight::from_parts(158_282, 0).saturating_mul(a.into()))
-			// Standard Error: 3_292
-			.saturating_add(Weight::from_parts(57_241, 0).saturating_mul(p.into()))
+			// Standard Error: 2_268
+			.saturating_add(Weight::from_parts(139_408, 0).saturating_mul(a.into()))
+			// Standard Error: 2_343
+			.saturating_add(Weight::from_parts(22_833, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -94,13 +94,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `323 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 19_807_000 picoseconds.
-		Weight::from_parts(20_303_455, 0)
+		// Minimum execution time: 19_192_000 picoseconds.
+		Weight::from_parts(19_779_454, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 2_259
-			.saturating_add(Weight::from_parts(161_690, 0).saturating_mul(a.into()))
-			// Standard Error: 2_334
-			.saturating_add(Weight::from_parts(21_504, 0).saturating_mul(p.into()))
+			// Standard Error: 1_652
+			.saturating_add(Weight::from_parts(138_956, 0).saturating_mul(a.into()))
+			// Standard Error: 1_707
+			.saturating_add(Weight::from_parts(7_087, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -110,15 +110,17 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, 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:  `323 + a * (68 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 19_289_000 picoseconds.
-		Weight::from_parts(21_881_983, 0)
+		// Minimum execution time: 19_260_000 picoseconds.
+		Weight::from_parts(19_937_008, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 3_419
-			.saturating_add(Weight::from_parts(139_118, 0).saturating_mul(a.into()))
+			// Standard Error: 1_517
+			.saturating_add(Weight::from_parts(136_142, 0).saturating_mul(a.into()))
+			// Standard Error: 1_568
+			.saturating_add(Weight::from_parts(2_860, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -134,13 +136,13 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `332 + a * (68 ±0) + p * (37 ±0)`
 		//  Estimated: `5690`
-		// Minimum execution time: 28_231_000 picoseconds.
-		Weight::from_parts(28_706_415, 0)
+		// Minimum execution time: 27_771_000 picoseconds.
+		Weight::from_parts(27_960_189, 0)
 			.saturating_add(Weight::from_parts(0, 5690))
-			// Standard Error: 2_341
-			.saturating_add(Weight::from_parts(141_659, 0).saturating_mul(a.into()))
-			// Standard Error: 2_418
-			.saturating_add(Weight::from_parts(44_970, 0).saturating_mul(p.into()))
+			// Standard Error: 1_963
+			.saturating_add(Weight::from_parts(116_138, 0).saturating_mul(a.into()))
+			// Standard Error: 2_029
+			.saturating_add(Weight::from_parts(26_682, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -151,11 +153,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_649_000 picoseconds.
-		Weight::from_parts(21_560_051, 0)
+		// Minimum execution time: 19_516_000 picoseconds.
+		Weight::from_parts(20_590_034, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_464
-			.saturating_add(Weight::from_parts(37_298, 0).saturating_mul(p.into()))
+			// Standard Error: 1_782
+			.saturating_add(Weight::from_parts(35_557, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -166,11 +168,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 20_131_000 picoseconds.
-		Weight::from_parts(21_765_292, 0)
+		// Minimum execution time: 19_762_000 picoseconds.
+		Weight::from_parts(20_785_822, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_178
-			.saturating_add(Weight::from_parts(34_933, 0).saturating_mul(p.into()))
+			// Standard Error: 2_086
+			.saturating_add(Weight::from_parts(34_931, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -181,26 +183,24 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `157 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 17_658_000 picoseconds.
-		Weight::from_parts(19_535_909, 0)
+		// Minimum execution time: 17_445_000 picoseconds.
+		Weight::from_parts(18_792_946, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_250
-			.saturating_add(Weight::from_parts(37_548, 0).saturating_mul(p.into()))
+			// Standard Error: 2_122
+			.saturating_add(Weight::from_parts(37_138, 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(1233), added: 3708, mode: MaxEncodedLen)
 	/// The range of component `p` is `[1, 31]`.
-	fn create_pure(p: u32, ) -> Weight {
+	fn create_pure(_p: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `177`
 		//  Estimated: `4698`
-		// Minimum execution time: 21_267_000 picoseconds.
-		Weight::from_parts(23_111_116, 0)
+		// Minimum execution time: 20_915_000 picoseconds.
+		Weight::from_parts(22_633_674, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_578
-			.saturating_add(Weight::from_parts(23_638, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -211,11 +211,11 @@ impl<T: frame_system::Config> pallet_proxy::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `194 + p * (37 ±0)`
 		//  Estimated: `4698`
-		// Minimum execution time: 19_035_000 picoseconds.
-		Weight::from_parts(20_679_433, 0)
+		// Minimum execution time: 18_603_000 picoseconds.
+		Weight::from_parts(19_682_210, 0)
 			.saturating_add(Weight::from_parts(0, 4698))
-			// Standard Error: 2_412
-			.saturating_add(Weight::from_parts(35_529, 0).saturating_mul(p.into()))
+			// Standard Error: 1_709
+			.saturating_add(Weight::from_parts(25_176, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/common/src/weights/pallet_quota.rs b/runtime/common/src/weights/pallet_quota.rs
index a59ab77c3..00d38cf18 100644
--- a/runtime/common/src/weights/pallet_quota.rs
+++ b/runtime/common/src/weights/pallet_quota.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_quota`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -54,8 +54,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `11288`
 		//  Estimated: `12751`
-		// Minimum execution time: 9_238_000 picoseconds.
-		Weight::from_parts(9_867_000, 0)
+		// Minimum execution time: 8_866_000 picoseconds.
+		Weight::from_parts(9_243_000, 0)
 			.saturating_add(Weight::from_parts(0, 12751))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -66,8 +66,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `139`
 		//  Estimated: `3489`
-		// Minimum execution time: 5_121_000 picoseconds.
-		Weight::from_parts(5_325_000, 0)
+		// Minimum execution time: 4_916_000 picoseconds.
+		Weight::from_parts(5_113_000, 0)
 			.saturating_add(Weight::from_parts(0, 3489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -80,8 +80,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `139`
 		//  Estimated: `3591`
-		// Minimum execution time: 26_770_000 picoseconds.
-		Weight::from_parts(28_114_000, 0)
+		// Minimum execution time: 26_293_000 picoseconds.
+		Weight::from_parts(26_760_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -94,8 +94,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `139`
 		//  Estimated: `3591`
-		// Minimum execution time: 26_856_000 picoseconds.
-		Weight::from_parts(27_775_000, 0)
+		// Minimum execution time: 26_253_000 picoseconds.
+		Weight::from_parts(26_944_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -106,8 +106,8 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `43`
 		//  Estimated: `12751`
-		// Minimum execution time: 2_460_000 picoseconds.
-		Weight::from_parts(2_582_000, 0)
+		// Minimum execution time: 2_439_000 picoseconds.
+		Weight::from_parts(2_507_000, 0)
 			.saturating_add(Weight::from_parts(0, 12751))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -123,11 +123,11 @@ impl<T: frame_system::Config> pallet_quota::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `164 + i * (44 ±0)`
 		//  Estimated: `3628 + i * (44 ±0)`
-		// Minimum execution time: 30_304_000 picoseconds.
-		Weight::from_parts(45_851_316, 0)
+		// Minimum execution time: 29_238_000 picoseconds.
+		Weight::from_parts(43_929_651, 0)
 			.saturating_add(Weight::from_parts(0, 3628))
-			// Standard Error: 5_978
-			.saturating_add(Weight::from_parts(1_679_537, 0).saturating_mul(i.into()))
+			// Standard Error: 4_101
+			.saturating_add(Weight::from_parts(1_693_708, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(2))
 			.saturating_add(Weight::from_parts(0, 44).saturating_mul(i.into()))
diff --git a/runtime/common/src/weights/pallet_scheduler.rs b/runtime/common/src/weights/pallet_scheduler.rs
index 4962e6147..a90ebcf05 100644
--- a/runtime/common/src/weights/pallet_scheduler.rs
+++ b/runtime/common/src/weights/pallet_scheduler.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_scheduler`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -54,8 +54,8 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `30`
 		//  Estimated: `1489`
-		// Minimum execution time: 2_836_000 picoseconds.
-		Weight::from_parts(3_163_000, 0)
+		// Minimum execution time: 2_891_000 picoseconds.
+		Weight::from_parts(3_018_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 +67,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 2_755_000 picoseconds.
-		Weight::from_parts(5_927_820, 0)
+		// Minimum execution time: 2_610_000 picoseconds.
+		Weight::from_parts(5_853_996, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 1_874
-			.saturating_add(Weight::from_parts(345_401, 0).saturating_mul(s.into()))
+			// Standard Error: 1_809
+			.saturating_add(Weight::from_parts(292_328, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -79,8 +79,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_831_000 picoseconds.
-		Weight::from_parts(4_021_000, 0)
+		// Minimum execution time: 3_762_000 picoseconds.
+		Weight::from_parts(3_959_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: Preimage PreimageFor (r:1 w:1)
@@ -92,11 +92,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `179 + s * (1 ±0)`
 		//  Estimated: `3644 + s * (1 ±0)`
-		// Minimum execution time: 16_503_000 picoseconds.
-		Weight::from_parts(16_846_000, 0)
+		// Minimum execution time: 16_132_000 picoseconds.
+		Weight::from_parts(16_389_000, 0)
 			.saturating_add(Weight::from_parts(0, 3644))
-			// Standard Error: 4
-			.saturating_add(Weight::from_parts(996, 0).saturating_mul(s.into()))
+			// Standard Error: 5
+			.saturating_add(Weight::from_parts(948, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 			.saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into()))
@@ -107,8 +107,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_960_000 picoseconds.
-		Weight::from_parts(5_387_000, 0)
+		// Minimum execution time: 4_937_000 picoseconds.
+		Weight::from_parts(5_273_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -116,24 +116,24 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_877_000 picoseconds.
-		Weight::from_parts(4_196_000, 0)
+		// Minimum execution time: 3_653_000 picoseconds.
+		Weight::from_parts(3_995_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_744_000 picoseconds.
-		Weight::from_parts(1_836_000, 0)
+		// Minimum execution time: 1_551_000 picoseconds.
+		Weight::from_parts(1_662_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_632_000 picoseconds.
-		Weight::from_parts(1_897_000, 0)
+		// Minimum execution time: 1_567_000 picoseconds.
+		Weight::from_parts(1_777_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: Scheduler Agenda (r:1 w:1)
@@ -143,11 +143,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 9_657_000 picoseconds.
-		Weight::from_parts(13_184_848, 0)
+		// Minimum execution time: 9_220_000 picoseconds.
+		Weight::from_parts(12_600_434, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 2_282
-			.saturating_add(Weight::from_parts(366_192, 0).saturating_mul(s.into()))
+			// Standard Error: 1_880
+			.saturating_add(Weight::from_parts(308_121, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -160,11 +160,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `77 + s * (177 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 13_637_000 picoseconds.
-		Weight::from_parts(13_768_609, 0)
+		// Minimum execution time: 12_859_000 picoseconds.
+		Weight::from_parts(13_421_155, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 4_600
-			.saturating_add(Weight::from_parts(593_607, 0).saturating_mul(s.into()))
+			// Standard Error: 1_257
+			.saturating_add(Weight::from_parts(461_381, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -177,11 +177,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `254 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 12_380_000 picoseconds.
-		Weight::from_parts(16_574_709, 0)
+		// Minimum execution time: 11_480_000 picoseconds.
+		Weight::from_parts(16_188_420, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 2_769
-			.saturating_add(Weight::from_parts(416_438, 0).saturating_mul(s.into()))
+			// Standard Error: 2_689
+			.saturating_add(Weight::from_parts(329_679, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -194,11 +194,11 @@ impl<T: frame_system::Config> pallet_scheduler::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `280 + s * (185 ±0)`
 		//  Estimated: `13928`
-		// Minimum execution time: 16_128_000 picoseconds.
-		Weight::from_parts(16_507_740, 0)
+		// Minimum execution time: 14_857_000 picoseconds.
+		Weight::from_parts(15_863_631, 0)
 			.saturating_add(Weight::from_parts(0, 13928))
-			// Standard Error: 5_685
-			.saturating_add(Weight::from_parts(591_564, 0).saturating_mul(s.into()))
+			// Standard Error: 2_114
+			.saturating_add(Weight::from_parts(483_128, 0).saturating_mul(s.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
diff --git a/runtime/common/src/weights/pallet_session.rs b/runtime/common/src/weights/pallet_session.rs
index 603c39dc4..21f423020 100644
--- a/runtime/common/src/weights/pallet_session.rs
+++ b/runtime/common/src/weights/pallet_session.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_session`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -54,11 +54,11 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
 	fn set_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `723`
-		//  Estimated: `11613`
-		// Minimum execution time: 23_413_000 picoseconds.
-		Weight::from_parts(24_527_000, 0)
-			.saturating_add(Weight::from_parts(0, 11613))
+		//  Measured:  `722`
+		//  Estimated: `11612`
+		// Minimum execution time: 23_858_000 picoseconds.
+		Weight::from_parts(24_487_000, 0)
+			.saturating_add(Weight::from_parts(0, 11612))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
@@ -68,11 +68,11 @@ impl<T: frame_system::Config> pallet_session::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured)
 	fn purge_keys() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `412`
-		//  Estimated: `3877`
-		// Minimum execution time: 14_513_000 picoseconds.
-		Weight::from_parts(15_443_000, 0)
-			.saturating_add(Weight::from_parts(0, 3877))
+		//  Measured:  `411`
+		//  Estimated: `3876`
+		// Minimum execution time: 14_302_000 picoseconds.
+		Weight::from_parts(15_421_000, 0)
+			.saturating_add(Weight::from_parts(0, 3876))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(5))
 	}
diff --git a/runtime/common/src/weights/pallet_smith_members.rs b/runtime/common/src/weights/pallet_smith_members.rs
index a0c5d8bda..dac33fd74 100644
--- a/runtime/common/src/weights/pallet_smith_members.rs
+++ b/runtime/common/src/weights/pallet_smith_members.rs
@@ -17,19 +17,19 @@
 //! Autogenerated weights for `pallet_smith_members`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-29, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
-//! HOSTNAME: `MacBook-Pro-de-Cedric.local`, CPU: `<UNKNOWN>`
+//! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
 
 // Executed Command:
-// ./target/release/duniter
+// target/release/duniter
 // benchmark
 // pallet
 // --chain=dev
 // --steps=50
 // --repeat=20
-// --pallet=pallet-smith-members
+// --pallet=*
 // --extrinsic=*
 // --execution=wasm
 // --wasm-execution=compiled
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `731`
 		//  Estimated: `6671`
-		// Minimum execution time: 28_000_000 picoseconds.
-		Weight::from_parts(28_000_000, 0)
+		// Minimum execution time: 26_669_000 picoseconds.
+		Weight::from_parts(27_834_000, 0)
 			.saturating_add(Weight::from_parts(0, 6671))
 			.saturating_add(T::DbWeight::get().reads(7))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `463`
 		//  Estimated: `3928`
-		// Minimum execution time: 15_000_000 picoseconds.
-		Weight::from_parts(15_000_000, 0)
+		// Minimum execution time: 14_692_000 picoseconds.
+		Weight::from_parts(15_306_000, 0)
 			.saturating_add(Weight::from_parts(0, 3928))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -96,8 +96,8 @@ impl<T: frame_system::Config> pallet_smith_members::WeightInfo for WeightInfo<T>
 		// Proof Size summary in bytes:
 		//  Measured:  `576`
 		//  Estimated: `6516`
-		// Minimum execution time: 24_000_000 picoseconds.
-		Weight::from_parts(26_000_000, 0)
+		// Minimum execution time: 22_975_000 picoseconds.
+		Weight::from_parts(23_677_000, 0)
 			.saturating_add(Weight::from_parts(0, 6516))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
diff --git a/runtime/common/src/weights/pallet_timestamp.rs b/runtime/common/src/weights/pallet_timestamp.rs
index 64c288e03..428a4194f 100644
--- a/runtime/common/src/weights/pallet_timestamp.rs
+++ b/runtime/common/src/weights/pallet_timestamp.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_timestamp`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -58,20 +58,20 @@ impl<T: frame_system::Config> pallet_timestamp::WeightInfo for WeightInfo<T> {
 	/// Proof Skipped: Parameters ParametersStorage (max_values: Some(1), max_size: None, mode: Measured)
 	fn set() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `435`
-		//  Estimated: `1920`
-		// Minimum execution time: 14_041_000 picoseconds.
-		Weight::from_parts(14_486_000, 0)
-			.saturating_add(Weight::from_parts(0, 1920))
+		//  Measured:  `378`
+		//  Estimated: `1863`
+		// Minimum execution time: 12_847_000 picoseconds.
+		Weight::from_parts(13_431_000, 0)
+			.saturating_add(Weight::from_parts(0, 1863))
 			.saturating_add(T::DbWeight::get().reads(4))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
 	fn on_finalize() -> Weight {
 		// Proof Size summary in bytes:
-		//  Measured:  `94`
+		//  Measured:  `57`
 		//  Estimated: `0`
-		// Minimum execution time: 3_283_000 picoseconds.
-		Weight::from_parts(3_496_000, 0)
+		// Minimum execution time: 2_746_000 picoseconds.
+		Weight::from_parts(2_902_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/common/src/weights/pallet_treasury.rs b/runtime/common/src/weights/pallet_treasury.rs
index 092608831..d9358efce 100644
--- a/runtime/common/src/weights/pallet_treasury.rs
+++ b/runtime/common/src/weights/pallet_treasury.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_treasury`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -52,8 +52,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 142_000 picoseconds.
-		Weight::from_parts(183_000, 0)
+		// Minimum execution time: 174_000 picoseconds.
+		Weight::from_parts(195_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// Storage: Treasury ProposalCount (r:1 w:1)
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `104`
 		//  Estimated: `1489`
-		// Minimum execution time: 21_724_000 picoseconds.
-		Weight::from_parts(22_610_000, 0)
+		// Minimum execution time: 21_044_000 picoseconds.
+		Weight::from_parts(21_732_000, 0)
 			.saturating_add(Weight::from_parts(0, 1489))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -78,8 +78,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `246`
 		//  Estimated: `3591`
-		// Minimum execution time: 32_786_000 picoseconds.
-		Weight::from_parts(33_606_000, 0)
+		// Minimum execution time: 31_073_000 picoseconds.
+		Weight::from_parts(31_829_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -93,11 +93,11 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `470 + p * (8 ±0)`
 		//  Estimated: `3557`
-		// Minimum execution time: 7_887_000 picoseconds.
-		Weight::from_parts(11_303_074, 0)
+		// Minimum execution time: 7_556_000 picoseconds.
+		Weight::from_parts(10_709_136, 0)
 			.saturating_add(Weight::from_parts(0, 3557))
-			// Standard Error: 1_215
-			.saturating_add(Weight::from_parts(51_874, 0).saturating_mul(p.into()))
+			// Standard Error: 1_003
+			.saturating_add(Weight::from_parts(44_363, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
@@ -107,8 +107,8 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `127`
 		//  Estimated: `1887`
-		// Minimum execution time: 5_415_000 picoseconds.
-		Weight::from_parts(6_057_000, 0)
+		// Minimum execution time: 5_306_000 picoseconds.
+		Weight::from_parts(5_499_000, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
 			.saturating_add(T::DbWeight::get().reads(1))
 			.saturating_add(T::DbWeight::get().writes(1))
@@ -130,11 +130,11 @@ impl<T: frame_system::Config> pallet_treasury::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0 + p * (195 ±0)`
 		//  Estimated: `1887 + p * (5202 ±0)`
-		// Minimum execution time: 18_545_000 picoseconds.
-		Weight::from_parts(28_734_511, 0)
+		// Minimum execution time: 17_801_000 picoseconds.
+		Weight::from_parts(28_192_286, 0)
 			.saturating_add(Weight::from_parts(0, 1887))
-			// Standard Error: 38_994
-			.saturating_add(Weight::from_parts(34_136_939, 0).saturating_mul(p.into()))
+			// Standard Error: 46_758
+			.saturating_add(Weight::from_parts(32_560_787, 0).saturating_mul(p.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into())))
 			.saturating_add(T::DbWeight::get().writes(3))
diff --git a/runtime/common/src/weights/pallet_universal_dividend.rs b/runtime/common/src/weights/pallet_universal_dividend.rs
index 200df31c4..880fdb324 100644
--- a/runtime/common/src/weights/pallet_universal_dividend.rs
+++ b/runtime/common/src/weights/pallet_universal_dividend.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_universal_dividend`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -59,13 +59,15 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 	/// Storage: System Account (r:1 w:1)
 	/// Proof: System Account (max_values: None, max_size: Some(126), added: 2601, mode: MaxEncodedLen)
 	/// The range of component `i` is `[1, 160]`.
-	fn claim_uds(_i: u32, ) -> Weight {
+	fn claim_uds(i: u32, ) -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `644`
 		//  Estimated: `4109`
-		// Minimum execution time: 29_099_000 picoseconds.
-		Weight::from_parts(32_535_071, 0)
+		// Minimum execution time: 29_405_000 picoseconds.
+		Weight::from_parts(30_738_460, 0)
 			.saturating_add(Weight::from_parts(0, 4109))
+			// Standard Error: 1_980
+			.saturating_add(Weight::from_parts(17_883, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(5))
 			.saturating_add(T::DbWeight::get().writes(2))
 	}
@@ -79,8 +81,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `93`
 		//  Estimated: `3591`
-		// Minimum execution time: 60_012_000 picoseconds.
-		Weight::from_parts(61_775_000, 0)
+		// Minimum execution time: 60_882_000 picoseconds.
+		Weight::from_parts(61_667_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -95,8 +97,8 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `93`
 		//  Estimated: `3591`
-		// Minimum execution time: 41_382_000 picoseconds.
-		Weight::from_parts(42_235_000, 0)
+		// Minimum execution time: 41_137_000 picoseconds.
+		Weight::from_parts(43_394_000, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
 			.saturating_add(T::DbWeight::get().reads(2))
 			.saturating_add(T::DbWeight::get().writes(2))
@@ -112,11 +114,11 @@ impl<T: frame_system::Config> pallet_universal_dividend::WeightInfo for WeightIn
 		// Proof Size summary in bytes:
 		//  Measured:  `215`
 		//  Estimated: `3591`
-		// Minimum execution time: 3_776_000 picoseconds.
-		Weight::from_parts(19_185_665, 0)
+		// Minimum execution time: 3_796_000 picoseconds.
+		Weight::from_parts(19_953_042, 0)
 			.saturating_add(Weight::from_parts(0, 3591))
-			// Standard Error: 2_143
-			.saturating_add(Weight::from_parts(11_381, 0).saturating_mul(i.into()))
+			// Standard Error: 2_277
+			.saturating_add(Weight::from_parts(11_222, 0).saturating_mul(i.into()))
 			.saturating_add(T::DbWeight::get().reads(3))
 			.saturating_add(T::DbWeight::get().writes(1))
 	}
diff --git a/runtime/common/src/weights/pallet_upgrade_origin.rs b/runtime/common/src/weights/pallet_upgrade_origin.rs
index 50b922d2d..a9cb90c0b 100644
--- a/runtime/common/src/weights/pallet_upgrade_origin.rs
+++ b/runtime/common/src/weights/pallet_upgrade_origin.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_upgrade_origin`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,7 +53,7 @@ impl<T: frame_system::Config> pallet_upgrade_origin::WeightInfo for WeightInfo<T
 		//  Measured:  `0`
 		//  Estimated: `0`
 		// Minimum execution time: 6_176_000 picoseconds.
-		Weight::from_parts(6_572_000, 0)
+		Weight::from_parts(6_617_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 }
diff --git a/runtime/common/src/weights/pallet_utility.rs b/runtime/common/src/weights/pallet_utility.rs
index 264a827be..9b49bbca5 100644
--- a/runtime/common/src/weights/pallet_utility.rs
+++ b/runtime/common/src/weights/pallet_utility.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_utility`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2023-12-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2024-01-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
 //! WORST CASE MAP SIZE: `1000000`
 //! HOSTNAME: `bgallois-ms7d43`, CPU: `12th Gen Intel(R) Core(TM) i3-12100F`
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
@@ -34,8 +34,8 @@
 // --execution=wasm
 // --wasm-execution=compiled
 // --heap-pages=4096
-// --header=file_header.txt
-// --output=runtime/common/src/weights/
+// --header=./file_header.txt
+// --output=./runtime/common/src/weights/
 
 #![cfg_attr(rustfmt, rustfmt_skip)]
 #![allow(unused_parens)]
@@ -53,18 +53,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_523_000 picoseconds.
-		Weight::from_parts(9_856_758, 0)
+		// Minimum execution time: 4_974_000 picoseconds.
+		Weight::from_parts(9_808_055, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 7_663
-			.saturating_add(Weight::from_parts(3_948_047, 0).saturating_mul(c.into()))
+			// Standard Error: 1_382
+			.saturating_add(Weight::from_parts(3_551_851, 0).saturating_mul(c.into()))
 	}
 	fn as_derivative() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 3_320_000 picoseconds.
-		Weight::from_parts(3_590_000, 0)
+		// Minimum execution time: 2_991_000 picoseconds.
+		Weight::from_parts(3_209_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -72,18 +72,18 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_403_000 picoseconds.
-		Weight::from_parts(10_801_972, 0)
+		// Minimum execution time: 4_945_000 picoseconds.
+		Weight::from_parts(8_576_607, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 3_013
-			.saturating_add(Weight::from_parts(4_090_158, 0).saturating_mul(c.into()))
+			// Standard Error: 1_454
+			.saturating_add(Weight::from_parts(3_700_906, 0).saturating_mul(c.into()))
 	}
 	fn dispatch_as() -> Weight {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 6_953_000 picoseconds.
-		Weight::from_parts(7_241_000, 0)
+		// Minimum execution time: 6_354_000 picoseconds.
+		Weight::from_parts(6_688_000, 0)
 			.saturating_add(Weight::from_parts(0, 0))
 	}
 	/// The range of component `c` is `[0, 1000]`.
@@ -91,10 +91,10 @@ impl<T: frame_system::Config> pallet_utility::WeightInfo for WeightInfo<T> {
 		// Proof Size summary in bytes:
 		//  Measured:  `0`
 		//  Estimated: `0`
-		// Minimum execution time: 5_334_000 picoseconds.
-		Weight::from_parts(6_047_053, 0)
+		// Minimum execution time: 5_086_000 picoseconds.
+		Weight::from_parts(8_627_700, 0)
 			.saturating_add(Weight::from_parts(0, 0))
-			// Standard Error: 2_934
-			.saturating_add(Weight::from_parts(3_939_046, 0).saturating_mul(c.into()))
+			// Standard Error: 1_133
+			.saturating_add(Weight::from_parts(3_568_588, 0).saturating_mul(c.into()))
 	}
 }
diff --git a/runtime/g1/src/lib.rs b/runtime/g1/src/lib.rs
index 695fb3d39..40a3025ac 100644
--- a/runtime/g1/src/lib.rs
+++ b/runtime/g1/src/lib.rs
@@ -139,7 +139,7 @@ pub type TechnicalCommitteeInstance = Instance2;
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
     define_benchmarks!(
-        [pallet_certification, Cert]
+        [pallet_certification, Certification]
         [pallet_distance, Distance]
         [pallet_oneshot_account, OneshotAccount]
         [pallet_universal_dividend, UniversalDividend]
@@ -214,7 +214,7 @@ impl frame_support::traits::InstanceFilter<RuntimeCall> for ProxyType {
                 // Some calls are never authorized from a proxied account
                 !matches!(
                     c,
-                    RuntimeCall::Cert(..)
+                    RuntimeCall::Certification(..)
                         | RuntimeCall::Identity(..)
                         | RuntimeCall::SmithMembers(..)
                 )
@@ -288,7 +288,7 @@ construct_runtime!(
         Wot: pallet_duniter_wot::{Pallet} = 40,
         Identity: pallet_identity::{Pallet, Call, Config<T>, Storage, Event<T>} = 41,
         Membership: pallet_membership::{Pallet, Call, Config<T>, Storage, Event<T>} = 42,
-        Cert: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
+        Certification: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
         Distance: pallet_distance::{Pallet, Call, Storage, Inherent, Event<T>} = 44,
 
         // Utilities
diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs
index 544ae962d..04366d5db 100644
--- a/runtime/gdev/src/lib.rs
+++ b/runtime/gdev/src/lib.rs
@@ -141,7 +141,7 @@ pub type TechnicalCommitteeInstance = Instance2;
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
     define_benchmarks!(
-        [pallet_certification, Cert]
+        [pallet_certification, Certification]
         [pallet_distance, Distance]
         [pallet_oneshot_account, OneshotAccount]
         [pallet_universal_dividend, UniversalDividend]
@@ -218,7 +218,7 @@ impl frame_support::traits::InstanceFilter<RuntimeCall> for ProxyType {
                 // Some calls are never authorized from a proxied account
                 !matches!(
                     c,
-                    RuntimeCall::Cert(..)
+                    RuntimeCall::Certification(..)
                         | RuntimeCall::Identity(..)
                         | RuntimeCall::SmithMembers(..)
                 )
@@ -330,7 +330,7 @@ construct_runtime!(
         Wot: pallet_duniter_wot::{Pallet} = 40,
         Identity: pallet_identity::{Pallet, Call, Config<T>, Storage, Event<T>} = 41,
         Membership: pallet_membership::{Pallet, Call, Config<T>, Storage, Event<T>} = 42,
-        Cert: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
+        Certification: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
         Distance: pallet_distance::{Pallet, Call, Storage, Inherent, Event<T>} = 44,
 
         // Utilities
diff --git a/runtime/gdev/tests/common/mod.rs b/runtime/gdev/tests/common/mod.rs
index a74493b34..261755f75 100644
--- a/runtime/gdev/tests/common/mod.rs
+++ b/runtime/gdev/tests/common/mod.rs
@@ -368,7 +368,7 @@ pub fn run_to_block(n: u32) {
         Wot::on_initialize(System::block_number());
         Identity::on_initialize(System::block_number());
         Membership::on_initialize(System::block_number());
-        Cert::on_initialize(System::block_number());
+        Certification::on_initialize(System::block_number());
 
         Timestamp::set_timestamp(System::block_number() as u64 * BLOCK_TIME);
         Distance::on_initialize(System::block_number());
diff --git a/runtime/gdev/tests/fixme_tests.rs b/runtime/gdev/tests/fixme_tests.rs
index 1ab0bd7a7..17c622110 100644
--- a/runtime/gdev/tests/fixme_tests.rs
+++ b/runtime/gdev/tests/fixme_tests.rs
@@ -53,7 +53,7 @@ fn can_still_issue_cert_when_membership_lost() {
 
         // fixed :)
         assert_noop!(
-            Cert::add_cert(
+            Certification::add_cert(
                 frame_system::RawOrigin::Signed(AccountKeyring::Bob.to_account_id()).into(),
                 2, // Bob
                 3, // Charlie
diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs
index ca90f9925..49755e0c4 100644
--- a/runtime/gdev/tests/integration_tests.rs
+++ b/runtime/gdev/tests/integration_tests.rs
@@ -335,12 +335,12 @@ fn test_validate_identity_when_claim() {
             ));
             run_to_block(3);
             // eve gets certified by bob and charlie
-            assert_ok!(Cert::add_cert(
+            assert_ok!(Certification::add_cert(
                 frame_system::RawOrigin::Signed(AccountKeyring::Bob.to_account_id()).into(),
                 2,
                 5
             ));
-            assert_ok!(Cert::add_cert(
+            assert_ok!(Certification::add_cert(
                 frame_system::RawOrigin::Signed(AccountKeyring::Charlie.to_account_id()).into(),
                 3,
                 5
@@ -1031,7 +1031,7 @@ fn test_validate_new_idty_after_few_uds() {
 
             // At next block, Bob should be able to certify and validate the new identity
             run_to_block(23);
-            assert_ok!(Cert::add_cert(
+            assert_ok!(Certification::add_cert(
                 frame_system::RawOrigin::Signed(AccountKeyring::Bob.to_account_id()).into(),
                 2,
                 5,
@@ -1089,7 +1089,7 @@ fn test_claim_memberhsip_after_few_uds() {
 
             // At next block, Bob should be able to certify the new identity
             run_to_block(23);
-            assert_ok!(Cert::add_cert(
+            assert_ok!(Certification::add_cert(
                 frame_system::RawOrigin::Signed(AccountKeyring::Bob.to_account_id()).into(),
                 2,
                 5,
diff --git a/runtime/gtest/src/lib.rs b/runtime/gtest/src/lib.rs
index 374cc0d79..a4b6e010a 100644
--- a/runtime/gtest/src/lib.rs
+++ b/runtime/gtest/src/lib.rs
@@ -140,7 +140,7 @@ pub type TechnicalCommitteeInstance = Instance2;
 #[cfg(feature = "runtime-benchmarks")]
 mod benches {
     define_benchmarks!(
-        [pallet_certification, Cert]
+        [pallet_certification, Certification]
         [pallet_distance, Distance]
         [pallet_oneshot_account, OneshotAccount]
         [pallet_universal_dividend, UniversalDividend]
@@ -211,7 +211,7 @@ impl frame_support::traits::InstanceFilter<RuntimeCall> for ProxyType {
                 // Some calls are never authorized from a proxied account
                 !matches!(
                     c,
-                    RuntimeCall::Cert(..)
+                    RuntimeCall::Certification(..)
                         | RuntimeCall::Identity(..)
                         | RuntimeCall::SmithMembers(..)
                 )
@@ -293,7 +293,7 @@ construct_runtime!(
         Wot: pallet_duniter_wot::{Pallet} = 40,
         Identity: pallet_identity::{Pallet, Call, Config<T>, Storage, Event<T>} = 41,
         Membership: pallet_membership::{Pallet, Call, Config<T>, Storage, Event<T>} = 42,
-        Cert: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
+        Certification: pallet_certification::{Pallet, Call, Config<T>, Storage, Event<T>} = 43,
         Distance: pallet_distance::{Pallet, Call, Storage, Inherent, Event<T>} = 44,
 
         // Utilities
diff --git a/xtask/src/gen_doc.rs b/xtask/src/gen_doc.rs
index 2a599b77c..979fa59a3 100644
--- a/xtask/src/gen_doc.rs
+++ b/xtask/src/gen_doc.rs
@@ -275,22 +275,6 @@ pub(super) fn gen_doc() -> Result<()> {
         &"Collective".into(),
         "TechnicalCommittee".into(),
     );
-    rename_key(
-        &mut weights,
-        &"MembershipMembership".into(),
-        "Membership".into(),
-    );
-    rename_key(
-        &mut weights,
-        &"MembershipSmithMembership".into(),
-        "SmithMembership".into(),
-    );
-    rename_key(&mut weights, &"CertificationCert".into(), "Cert".into());
-    rename_key(
-        &mut weights,
-        &"CertificationSmithCert".into(),
-        "SmithCert".into(),
-    );
 
     // We enforce weight for each pallet.
     // For pallets with manual or no weight, we define a default value.
-- 
GitLab