Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support linking ethereum accounts #355

Merged
merged 43 commits into from
Jul 7, 2022
Merged

Conversation

trusch
Copy link
Contributor

@trusch trusch commented Apr 8, 2022

fixes KILTProtocol/ticket#1936

This adds support to link ethereum accounts to a DID. It used moonbeams AccountId20 implementation and related Signer implementations etc.

Update: Its working now :) Following the instructions below should result in linking your eth account to a DID

How to test:

Its a bit harder to test, but here are the instructions:

  • spin up a local node with from this PR
  • install kiltctl from the branch did-submit
  • create a DID for the alice account
#!/bin/bash

# for gpg to ask for passphrases within the command line
export GPG_TTY=$(tty)

# endpoint of a freshly started dev node. Please adjust the port to your needs.
export KILTCTL_ENDPOINT=ws://localhost:9948

# path to the key storage for this test
export KILTCTL_STORAGE=./kilt-test.db

# create sr25519 keypair for alice
echo "Create key 'alice'"
kiltctl keys create --seed "//Alice" --name alice

# create account used for payments from the keys
echo "Create account 'alice'"
kiltctl account create --key alice --name alice

# re-use the key and create a DID for alice using that key as auth key
echo "Create DID 'alice'"
kiltctl did create --auth alice --name alice

# register the DID
echo "Register DID 'alice'"
kiltctl did register --payment alice alice

# sanity check -> should resolve the DID document from chain
echo "Resolve DID 'alice'"
kiltctl did resolve alice
  • Now the did:kilt:4siJtc4dYq2gPre8Xj6KJcSjVAdi1gmjctUzjf3AwrtNnhvy should exist
  • next steps are for creating the ethereum signate
  • git clone [email protected]:KILTprotocol/minimal-eth-linking-signer.git (repo)
  • go to the directory and yarn install && yarn start
    • this will spin up the signer application that talks to metamask
  • at first you will only see a connect button, click it
  • now enter all info that we need (did identifier + expiration) and click "sign"
  • in the end it should look like this:
    image
  • Lets create the actual test call
  • go to polkadot apps (pointing to your local node) -> extrinsics -> didLookup -> associateAccount
  • Fill out the call and in the end it should look like this:
    image
  • copy encoded call data (without the leading 0x!) which is your scale encoded extrinsic
  • go back to your terminal to submit this call signed by the alice DID
  • KILTCTL_STORAGE=./kilt-test.db kiltctl did sign_and_submit --data "$DATA" --payment alice alice
  • After this is finalized, check the chain state and events if everything worked

Checklist:

  • I have verified that the code works
    • No panics! (checked arithmetic ops, no indexing array[3] use get(3), ...)
  • I have verified that the code is easy to understand
    • If not, I have left a well-balanced amount of inline comments
  • I have left the code in a better state
  • I have documented the changes (where applicable)

@trusch trusch force-pushed the tr-ethereum-did-linking branch from f399028 to 1c444d1 Compare April 19, 2022 06:13
@trusch trusch requested a review from wischli April 27, 2022 07:27
Copy link
Contributor

@wischli wischli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use Substrate instead of Dotsama?

pallets/pallet-did-lookup/src/linkable_account.rs Outdated Show resolved Hide resolved
@trusch trusch force-pushed the tr-ethereum-did-linking branch from 0d5a771 to c299cf0 Compare April 29, 2022 10:06
@trusch
Copy link
Contributor Author

trusch commented May 2, 2022

regarding the needed migration: I see about 1.3k AssociationEstablished events on spiritnet, so I guess that just writing a migration and migrating all the storage at once will not work. What would be the best way to deal with that? @wischli

@trusch
Copy link
Contributor Author

trusch commented May 2, 2022

Green CI :) Btw. we have stricter linter settings than moonbeam! They had implemented some Into's for their AccountId20 type and clippy complained it wants From's instead 🤷‍♂️

@wischli
Copy link
Contributor

wischli commented May 2, 2022

regarding the needed migration: I see about 1.3k AssociationEstablished events on spiritnet, so I guess that just writing a migration and migrating all the storage at once will not work. What would be the best way to deal with that? @wischli

Theoretically, it should easily fit into one block as the migration basically does 1300 reads and writes which amounts to 1300 * (100,000,000 + 25,000,000) = 162,500,000,000 weight which consumes 44% of the available block weight (370,000,000,000 - 125,000,000). In other words, theoretically we could fit ~2900 reads and writes into a single block.

However, I would stretch this into multiple blocks as this will be part of a runtime upgrade. When you can fit such migrations into 2-3 blocks, the recommendation is to use the Scheduler pallet.

@trusch
Copy link
Contributor Author

trusch commented May 9, 2022

@wischli albi suggested that we could also do it lazily by having two storage entries and that we could always first read and write to the new storage item and as backup read old entries from the old storage and convert on the fly. What do you think? I guess in the scheduler approach we would also need the two storage entries to coexist.

@wischli
Copy link
Contributor

wischli commented May 9, 2022

@wischli albi suggested that we could also do it lazily by having two storage entries and that we could always first read and write to the new storage item and as backup read old entries from the old storage and convert on the fly. What do you think? I guess in the scheduler approach we would also need the two storage entries to coexist.

We could also go that route but I fear this will make the code less readable and we have to keep that state until we do a force migration anyway. We cannot guarantee users to perform actions which would migrate on the fly.

If @weichweich thinks we should go that way, I am fine with it.

@wischli wischli added the next release This PR is required for the next release. label May 30, 2022
@trusch
Copy link
Contributor Author

trusch commented May 30, 2022

@wischli Could you have a look? I left the old storage simply untouched for now and only operate on new storage items ConnectedAccountsV2 and ConnectedDidsV2. I also provide a extrinsic to migrate all accounts associated with the sender did. Do you think this is doable like this?

Copy link
Contributor

@wischli wischli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wischli Could you have a look? I left the old storage simply untouched for now and only operate on new storage items ConnectedAccountsV2 and ConnectedDidsV2. I also provide a extrinsic to migrate all accounts associated with the sender did. Do you think this is doable like this?

I am not happy with the proposed approach as I see two major issues which have to be improved:

  1. If a user does not migrate, it's impossible for them and anyone else to remove their connected DID and/or association.
  2. A user can have storage entries in v1 and v2. If they don't migrate, both versions co-exist.
  • a. There is no incentive for a user to migrate as they have to pay the transaction fee and don't get any benefit. We should not require users to actively migrate. They should not have to worry/know about this at all.
  • b. Moreover, any frontend that uses our API would have to query twice as many records for potential DID connections.
  • c. This also breaks/is not aligned with feat: did rpc #348. Of course, we could refactor feat: did rpc #348 such that we handle the fallback from v2 to v1 and as long as services use our optimized RPC, they are fine. However, we still have to do redundant checks on our side then.

I can imagine that Albi's lazy migration rather wanted to migrate on the fly when adding a new association or removing an existing association. But then we would always have to double check both storage entries as long as we haven't removed. Again: Where is the point if we either have to keep the old storage alive and have spaghetti code OR force a migration at some point?

All in all, I am not in favor of migrating lazily. We definitely increase technical debt and create problems/migration paths for the SDK and Sporran, at least. There are less than 1400 accounts which we need to migrate. I don't see any issue in going forward with a (scheduled) migration which does not create any secondary problems. Let's ask Shawn to be sure and don't implement any half solution.

If this needs further discussion, let's schedule a call together with @ntn-x2.

pallets/pallet-did-lookup/src/lib.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/lib.rs Outdated Show resolved Hide resolved
Copy link
Member

@ntn-x2 ntn-x2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice solution. I agree with William that we should probably use the schedule migration approach. Moreover, I would REALLY like to see some more comments and some clearer variable names, perhaps even splitting up operations into multiple steps to enhance readability, if possible.
Last but not least, I would love to see some test cases for the pallet that test with linking a new Ethereum account, as I don't think there's any right now.
I would then like to give another review once at least the comments and the test cases have been added.

pallets/pallet-did-lookup/src/account.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/signature.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/linkable_account.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/lib.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/Cargo.toml Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/Cargo.toml Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Outdated Show resolved Hide resolved
@wischli
Copy link
Contributor

wischli commented Jun 1, 2022

Btw, I also did not do a full review yet. I wanted to wait until the migration path was finalized.

Co-authored-by: William Freudenberger <[email protected]>
Co-authored-by: Antonio <[email protected]>
@trusch trusch force-pushed the tr-ethereum-did-linking branch from 2f377a1 to 9e9eb8e Compare June 30, 2022 09:52
@trusch trusch marked this pull request as ready for review June 30, 2022 09:53
@trusch trusch requested review from ntn-x2 and wischli June 30, 2022 09:53
Copy link
Contributor

@weichweich weichweich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice PR! 🙂
I have a few minor things and a question regarding the migration. Didn't we want to do the migration lazily? As far as I can see, we do the migration now in the runtime upgrade?

Also I think you are looking for the translate call in the migration?

nodes/standalone/Cargo.toml Show resolved Hide resolved
nodes/parachain/Cargo.toml Show resolved Hide resolved
rpc/did/runtime-api/Cargo.toml Show resolved Hide resolved
runtimes/standalone/src/lib.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/Cargo.toml Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/lib.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/lib.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/migrations.rs Outdated Show resolved Hide resolved
Comment on lines 109 to 111
// Move TmpStorage
move_storage::<Pallet<T>>(b"TmpConnectedDids", b"ConnectedDids");
move_storage::<Pallet<T>>(b"TmpConnectedAccounts", b"ConnectedAccounts");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we read everything from ConnectedDids to TmpConnectedDids and write TmpConnectedDids back to TmpConnectedDids?

I would rather propose to translate the storage inplace. THis would cost half as many storage accesses.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wischli wrote the migration, but the basic problem was that the type of the keys of the map changed. Just translating the values would have been straight forward, but because we need to translate the keys, this whole dance is necessary.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

even if the keys change, you can still simple drain the old storage and write it back in the new one without the additional intermediate storage?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no new storage since we didn't want to change the name of the storage entry.
Its like a_vec.iter().for_each( |i| a_vec.push_back(2*i)), it doesn't work.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would propose to not write it back to storage immediately but write it into a vec. After that we can write the content of the vec back into storage.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in 719e7d9

pallets/pallet-did-lookup/src/migrations.rs Show resolved Hide resolved
Copy link
Member

@ntn-x2 ntn-x2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely a nice improvement over the previous version, but I still have few questions about some design choices, and I would also love the code to be adjusted and restructured a little bit, so that it follows the style and conventions we have used everywhere else in the codebase.

pallets/pallet-did-lookup/src/account.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/account.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/benchmarking.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/benchmarking.rs Show resolved Hide resolved
pallets/pallet-did-lookup/src/migrations.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/migrations.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/migrations.rs Outdated Show resolved Hide resolved
pallets/pallet-did-lookup/src/migrations.rs Outdated Show resolved Hide resolved
rpc/did/runtime-api/src/lib.rs Show resolved Hide resolved
@weichweich
Copy link
Contributor

/bench runtime peregrine pallet-did-lookup

@kilt-command-bot
Copy link

kilt-command-bot bot commented Jul 6, 2022

Benchmark Runtime Substrate Pallet for branch "tr-ethereum-did-linking" with command cargo run --quiet --release -p kilt-parachain --features=runtime-benchmarks -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet-did-lookup --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtimes/peregrine/src/weights/pallet_did-lookup.rs --template=.maintain/runtime-weight-template.hbs

Toolchain: nightly-2022-05-11-x86_64-unknown-linux-gnu (overridden by '/home/benchbot/bench-bot/git/kilt-node/rust-toolchain.toml')
rustc 1.62.0-nightly (ecd44958e 2022-05-10)

Results
Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_sr25519", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    117.1
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    117.1
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_ed25519", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    114.5
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    114.5
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_ecdsa", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=      106
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=      106
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_eth_account", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    108.3
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    108.3
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_sender", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    58.08
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    58.08
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "remove_sender_association", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    39.01
              µs

Reads = 2
Writes = 3

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    39.01
              µs

Reads = 2
Writes = 3

Pallet: "pallet_did_lookup", Extrinsic: "remove_account_association", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    40.68
              µs

Reads = 2
Writes = 3

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    40.68
              µs

Reads = 2
Writes = 3


…hmarks -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet-did-lookup --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtimes/peregrine/src/weights/pallet_did-lookup.rs --template=.maintain/runtime-weight-template.hbs
@weichweich
Copy link
Contributor

/bench runtime spiritnet-pallet parachain-staking

@kilt-command-bot
Copy link

kilt-command-bot bot commented Jul 6, 2022

Benchmark Runtime Pallet for branch "tr-ethereum-did-linking" with command cargo run --quiet --release -p kilt-parachain --features=runtime-benchmarks -- benchmark pallet --chain=spiritnet-dev --steps=50 --repeat=20 --pallet=parachain-staking --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=pallets/parachain-staking/src/default_weights.rs --template=.maintain/weight-template.hbs

Toolchain: nightly-2022-05-11-x86_64-unknown-linux-gnu (overridden by '/home/benchbot/bench-bot/git/kilt-node/rust-toolchain.toml')
rustc 1.62.0-nightly (ecd44958e 2022-05-10)

Results
Pallet: "parachain_staking", Extrinsic: "on_initialize_no_action", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking Round (r:1 w:0)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    3.982
              µs

Reads = 1
Writes = 0

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    3.982
              µs

Reads = 1
Writes = 0

Pallet: "parachain_staking", Extrinsic: "on_initialize_round_update", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking Round (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=     17.2
              µs

Reads = 1
Writes = 1

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=     17.2
              µs

Reads = 1
Writes = 1

Pallet: "parachain_staking", Extrinsic: "on_initialize_new_year", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking Round (r:1 w:1)
Storage: ParachainStaking LastRewardReduction (r:1 w:1)
Storage: ParachainStaking InflationConfig (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    31.11
              µs

Reads = 3
Writes = 3

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    31.11
              µs

Reads = 3
Writes = 3

Pallet: "parachain_staking", Extrinsic: "on_initialize_network_rewards", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking Round (r:1 w:1)
Storage: ParachainStaking LastRewardReduction (r:1 w:1)
Storage: ParachainStaking InflationConfig (r:1 w:1)
Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: System Account (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    61.88
              µs

Reads = 6
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    61.88
              µs

Reads = 6
Writes = 4

Pallet: "parachain_staking", Extrinsic: "force_new_round", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking ForceNewRound (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    2.161
              µs

Reads = 0
Writes = 1

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    2.161
              µs

Reads = 0
Writes = 1

Pallet: "parachain_staking", Extrinsic: "set_inflation", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking InflationConfig (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    15.55
              µs

Reads = 0
Writes = 1

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    15.55
              µs

Reads = 0
Writes = 1

Pallet: "parachain_staking", Extrinsic: "set_max_selected_candidates", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)
Storage: ParachainStaking CandidatePool (r:1 w:0)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n     8.35
    + m    6.955
              µs

Reads = 0 + (1 * n) + (0 * m)
Writes = 2 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
   16    35     72.13     0.319    0.4%
   17    35      83.3     0.248    0.2%
   18    35     94.15     0.686    0.7%
   19    35     101.1     0.321    0.3%
   20    35     109.6     0.447    0.4%
   21    35     117.8     0.542    0.4%
   22    35     124.7      0.43    0.3%
   23    35     133.3     0.652    0.4%
   24    35     142.6     0.654    0.4%
   25    35     150.5     0.549    0.3%
   26    35     157.7     0.716    0.4%
   27    35       163     0.786    0.4%
   28    35     170.5     0.764    0.4%
   29    35     178.6      1.08    0.6%
   30    35       186     0.805    0.4%
   31    35     194.3     0.903    0.4%
   32    35     202.8     0.935    0.4%
   33    35     207.2     0.966    0.4%
   34    35     219.3     0.784    0.3%
   35    35     226.7     1.664    0.7%
   36    35     233.7     0.943    0.4%
   37    35     240.5     1.394    0.5%
   38    35     250.9     0.769    0.3%
   39    35       261     1.153    0.4%
   40    35     270.4     2.032    0.7%
   41    35     274.5     0.797    0.2%
   42    35     284.4     1.253    0.4%
   43    35     293.2     1.787    0.6%
   44    35     302.4     1.715    0.5%
   45    35     310.6     1.603    0.5%
   46    35     316.7      1.45    0.4%
   47    35       321     1.118    0.3%
   48    35     333.5     1.563    0.4%
   49    35     343.2     1.918    0.5%
   50    35     350.4     0.968    0.2%
   51    35     358.8     1.415    0.3%
   52    35     371.1     1.592    0.4%
   53    35     377.2     2.137    0.5%
   54    35     383.9     1.739    0.4%
   55    35     390.5      2.79    0.7%
   56    35     401.8     2.514    0.6%
   57    35     409.8     2.355    0.5%
   58    35     416.6     1.074    0.2%
   59    35     425.1     3.046    0.7%
   60    35     431.3     1.992    0.4%
   61    35     448.2     4.118    0.9%
   62    35     458.3     3.138    0.6%
   63    35     463.3     1.862    0.4%
   64    35     464.9     2.354    0.5%
   65    35     487.5     2.703    0.5%
   66    35     492.6     2.762    0.5%
   67    35     511.3     1.743    0.3%
   68    35     512.9     3.568    0.6%
   69    35     524.1     2.112    0.4%
   70    35     527.2     2.293    0.4%
   71    35     530.4     2.168    0.4%
   72    35     542.8     2.262    0.4%
   73    35     560.8     4.339    0.7%
   74    35     565.3     3.498    0.6%
   75     0     319.9     0.854    0.2%
   75     1       353     1.539    0.4%
   75     2     373.8     1.673    0.4%
   75     3     343.5     1.708    0.4%
   75     4     358.4     1.618    0.4%
   75     5     370.1     2.464    0.6%
   75     6     383.4     1.365    0.3%
   75     7     387.3     2.165    0.5%
   75     8     406.3      2.49    0.6%
   75     9       414     4.463    1.0%
   75    10     418.1     0.742    0.1%
   75    11     425.4     1.774    0.4%
   75    12     421.8     1.728    0.4%
   75    13       437     2.075    0.4%
   75    14       445     1.712    0.3%
   75    15     444.6     2.331    0.5%
   75    16     454.1     2.022    0.4%
   75    17     463.2     1.165    0.2%
   75    18     467.3     1.763    0.3%
   75    19     474.6     1.729    0.3%
   75    20     483.6      1.83    0.3%
   75    21     503.5     2.627    0.5%
   75    22     506.8     2.997    0.5%
   75    23     509.5     3.133    0.6%
   75    24     514.2     3.497    0.6%
   75    25     518.7     1.599    0.3%
   75    26     537.1     2.182    0.4%
   75    27       535     2.798    0.5%
   75    28     538.6     2.802    0.5%
   75    29     547.7     1.855    0.3%
   75    30     558.5     3.349    0.5%
   75    31     551.1     2.168    0.3%
   75    32     557.7     2.734    0.4%
   75    33     570.5     2.545    0.4%
   75    34     567.2     2.368    0.4%
   75    35       574     3.457    0.6%

Quality and confidence:
param     error
n         0.018
m         0.033

Model:
Time ~=        0
    + n    8.615
    + m    6.437
              µs

Reads = 0 + (1 * n) + (0 * m)
Writes = 2 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "set_blocks_per_round", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking Round (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    17.82
              µs

Reads = 1
Writes = 1

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    17.82
              µs

Reads = 1
Writes = 1

Pallet: "parachain_staking", Extrinsic: "force_remove_candidate", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:17 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking Unstaking (r:36 w:36)
Storage: ParachainStaking DelegatorState (r:35 w:35)
Storage: Session Validators (r:1 w:0)
Storage: Session DisabledValidators (r:1 w:1)
Storage: System Digest (r:1 w:1)
Storage: ParachainStaking CounterForCandidatePool (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.516
    + m    22.99
              µs

Reads = 25 + (0 * n) + (2 * m)
Writes = 7 + (0 * n) + (2 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
   17    35     785.3     3.301    0.4%
   18    35     791.8     2.378    0.3%
   19    35     806.9     2.609    0.3%
   20    35     799.5     2.544    0.3%
   21    35     809.2     3.076    0.3%
   22    35     800.5     2.782    0.3%
   23    35     824.8     3.138    0.3%
   24    35     816.2     1.974    0.2%
   25    35     836.6      2.94    0.3%
   26    35     836.3     2.594    0.3%
   27    35     830.2     2.439    0.2%
   28    35     842.9     2.199    0.2%
   29    35     846.2     4.334    0.5%
   30    35     849.9     1.943    0.2%
   31    35     858.3     2.819    0.3%
   32    35     859.8     3.594    0.4%
   33    35     852.7     2.104    0.2%
   34    35     866.3     2.091    0.2%
   35    35     870.4     2.183    0.2%
   36    35     879.5     2.664    0.3%
   37    35     877.7     3.056    0.3%
   38    35     880.1     4.284    0.4%
   39    35     897.6     4.488    0.4%
   40    35     902.9     2.924    0.3%
   41    35     897.3     3.575    0.3%
   42    35     896.1     3.819    0.4%
   43    35     903.2     3.638    0.4%
   44    35     901.9     4.685    0.5%
   45    35     913.8      5.26    0.5%
   46    35     914.9     3.411    0.3%
   47    35       907     4.062    0.4%
   48    35     919.7     5.457    0.5%
   49    35     923.7       1.9    0.2%
   50    35     923.3     4.365    0.4%
   51    35     936.6     5.962    0.6%
   52    35     940.1     3.541    0.3%
   53    35     935.3     2.799    0.2%
   54    35     934.5     5.482    0.5%
   55    35     925.2     3.881    0.4%
   56    35     944.4     3.195    0.3%
   57    35     947.7     5.796    0.6%
   58    35     945.6     1.752    0.1%
   59    35     952.6     5.701    0.5%
   60    35     933.4     3.172    0.3%
   61    35     938.6     2.527    0.2%
   62    35       965     4.495    0.4%
   63    35     964.8     4.738    0.4%
   64    35     956.7      3.48    0.3%
   65    35     969.4     2.982    0.3%
   66    35     962.2     3.978    0.4%
   67    35     983.1     4.826    0.4%
   68    35     974.7     2.279    0.2%
   69    35     985.2     9.115    0.9%
   70    35     976.5     4.588    0.4%
   71    35     972.5     2.949    0.3%
   72    35     981.9     3.949    0.4%
   73    35      1011      6.62    0.6%
   74    35     998.7     3.002    0.3%
   75     0     179.3     0.552    0.3%
   75     1     231.7      0.84    0.3%
   75     2     273.2     0.847    0.3%
   75     3     249.1     1.348    0.5%
   75     4     276.9     1.177    0.4%
   75     5       305     1.716    0.5%
   75     6     338.9     1.401    0.4%
   75     7     363.3     0.943    0.2%
   75     8     395.3     2.263    0.5%
   75     9     420.4     1.623    0.3%
   75    10     437.6     0.814    0.1%
   75    11     464.5     2.246    0.4%
   75    12     485.1     1.395    0.2%
   75    13     512.2     1.164    0.2%
   75    14       540     2.076    0.3%
   75    15     558.4     1.618    0.2%
   75    16     583.5     2.422    0.4%
   75    17       606     4.216    0.6%
   75    18     626.3      2.73    0.4%
   75    19     653.6     1.605    0.2%
   75    20     670.9     2.175    0.3%
   75    21     699.4     3.358    0.4%
   75    22     716.9      3.45    0.4%
   75    23     737.8     3.599    0.4%
   75    24     765.3     3.168    0.4%
   75    25     773.4      3.15    0.4%
   75    26     809.2     2.427    0.2%
   75    27     821.9     3.872    0.4%
   75    28       845     4.551    0.5%
   75    29     869.8     4.011    0.4%
   75    30     889.4     3.532    0.3%
   75    31     905.4      2.68    0.2%
   75    32     933.4     2.879    0.3%
   75    33     968.2     4.321    0.4%
   75    34     978.5     4.631    0.4%
   75    35      1006     4.843    0.4%

Quality and confidence:
param     error
n         0.022
m          0.04

Model:
Time ~=        0
    + n    3.551
    + m     22.9
              µs

Reads = 25 + (0 * n) + (2 * m)
Writes = 7 + (0 * n) + (2 * m)

Pallet: "parachain_staking", Extrinsic: "join_candidates", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking DelegatorState (r:1 w:0)
Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: Balances Locks (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)
Storage: ParachainStaking CounterForCandidatePool (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    2.186
    + m    4.441
              µs

Reads = 9 + (0 * n) + (0 * m)
Writes = 6 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
    1    35     115.9      0.46    0.3%
    2    35       116     0.542    0.4%
    3    35     132.4     0.644    0.4%
    4    35       151     0.342    0.2%
    5    35     164.1      0.35    0.2%
    6    35       179     0.631    0.3%
    7    35     131.3     0.547    0.4%
    8    35     134.5     0.716    0.5%
    9    35       142     0.517    0.3%
   10    35     148.8     0.448    0.3%
   11    35     155.5      0.62    0.3%
   12    35     163.3     0.592    0.3%
   13    35       169     0.604    0.3%
   14    35     175.5     0.518    0.2%
   15    35       179     0.861    0.4%
   16    35     181.2     0.734    0.4%
   17    35     183.4     0.612    0.3%
   18    35     187.5     0.798    0.4%
   19    35     191.8     0.668    0.3%
   20    35     194.7     0.718    0.3%
   21    35     199.9     0.818    0.4%
   22    35     201.4     0.713    0.3%
   23    35     204.1     0.711    0.3%
   24    35     205.2     0.926    0.4%
   25    35     208.7     1.133    0.5%
   26    35     210.7     0.662    0.3%
   27    35     212.8     1.058    0.4%
   28    35     215.6     0.434    0.2%
   29    35     220.2     0.597    0.2%
   30    35     218.9     0.599    0.2%
   31    35     223.4     0.607    0.2%
   32    35     226.4     0.683    0.3%
   33    35     224.4     0.653    0.2%
   34    35     229.2     0.862    0.3%
   35    35     233.1     1.235    0.5%
   36    35     233.1     1.079    0.4%
   37    35     233.3     0.485    0.2%
   38    35     236.9     0.904    0.3%
   39    35     240.7     0.533    0.2%
   40    35       244     1.242    0.5%
   41    35     244.4     0.961    0.3%
   42    35     246.8      0.85    0.3%
   43    35     251.7     1.087    0.4%
   44    35     251.5     1.187    0.4%
   45    35     255.4     0.817    0.3%
   46    35     254.7     0.996    0.3%
   47    35     258.6      1.07    0.4%
   48    35     257.5     1.065    0.4%
   49    35     261.4     1.176    0.4%
   50    35     262.7     1.279    0.4%
   51    35     264.4     0.648    0.2%
   52    35     267.9     1.322    0.4%
   53    35     267.5     1.258    0.4%
   54    35     269.4     1.198    0.4%
   55    35     271.6     1.468    0.5%
   56    35     272.4     0.638    0.2%
   57    35     270.2      0.61    0.2%
   58    35     268.8     0.883    0.3%
   59    35     272.8     1.132    0.4%
   60    35     274.4     1.115    0.4%
   61    35     276.5     1.199    0.4%
   62    35     280.4     1.132    0.4%
   63    35     280.1     0.758    0.2%
   64    35     279.2     1.058    0.3%
   65    35     285.8     1.908    0.6%
   66    35     284.5     1.208    0.4%
   67    35     288.4     1.455    0.5%
   68    35     282.6     1.604    0.5%
   69    35     289.9     1.416    0.4%
   70    35     288.8     0.893    0.3%
   71    35     291.5     1.038    0.3%
   72    35     294.3     0.803    0.2%
   73    35     295.8     0.898    0.3%
   74     0     114.8     0.308    0.2%
   74     1     149.9     0.467    0.3%
   74     2     181.7     0.482    0.2%
   74     3     145.9     0.538    0.3%
   74     4     159.6     0.558    0.3%
   74     5     171.5     0.657    0.3%
   74     6     182.9     0.879    0.4%
   74     7     193.9     0.755    0.3%
   74     8     203.4      0.75    0.3%
   74     9     212.5     0.736    0.3%
   74    10       218     1.044    0.4%
   74    11     224.7     0.747    0.3%
   74    12     228.5     0.611    0.2%
   74    13       235      0.69    0.2%
   74    14     237.1     0.686    0.2%
   74    15     241.9     0.614    0.2%
   74    16     244.6     0.913    0.3%
   74    17     248.6     0.553    0.2%
   74    18     257.3     1.516    0.5%
   74    19     262.7     0.865    0.3%
   74    20     266.8     0.456    0.1%
   74    21     271.4     1.484    0.5%
   74    22     272.9     0.957    0.3%
   74    23     276.6     1.453    0.5%
   74    24       274     1.482    0.5%
   74    25       286     0.567    0.1%
   74    26     283.5     1.477    0.5%
   74    27     286.4     1.416    0.4%
   74    28     293.6     1.008    0.3%
   74    29     294.6     1.207    0.4%
   74    30     295.7     1.165    0.3%
   74    31     297.9     1.137    0.3%
   74    32     301.7     1.554    0.5%
   74    33     305.6     1.241    0.4%
   74    34     302.6      1.23    0.4%
   74    35     302.1     5.406    1.7%

Quality and confidence:
param     error
n         0.018
m         0.045

Model:
Time ~=        0
    + n    2.376
    + m    4.364
              µs

Reads = 10 + (0 * n) + (0 * m)
Writes = 7 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "init_leave_candidates", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:17 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking Round (r:1 w:0)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    8.727
    + n    2.487
    + m    6.111
              µs

Reads = 21 + (0 * n) + (0 * m)
Writes = 3 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
   17    35     255.8     1.539    0.6%
   18    35     259.8     0.526    0.2%
   19    35     265.9     0.856    0.3%
   20    35     268.2     1.624    0.6%
   21    35       273     0.901    0.3%
   22    35     272.6     0.898    0.3%
   23    35     279.1     0.664    0.2%
   24    35     281.5     0.627    0.2%
   25    35     283.7     1.286    0.4%
   26    35     286.5     1.127    0.3%
   27    35     287.6     1.516    0.5%
   28    35       292     1.629    0.5%
   29    35     295.9     2.003    0.6%
   30    35     297.6     0.833    0.2%
   31    35     302.1     0.889    0.2%
   32    35     304.2     1.569    0.5%
   33    35     301.6     1.174    0.3%
   34    35     305.9     0.901    0.2%
   35    35     308.4     0.858    0.2%
   36    35       310     0.702    0.2%
   37    35     314.8     1.101    0.3%
   38    35     324.6     1.224    0.3%
   39    35     326.9      0.76    0.2%
   40    35       329     1.028    0.3%
   41    35     329.6     1.136    0.3%
   42    35     331.7     1.047    0.3%
   43    35     336.8     0.966    0.2%
   44    35     338.1     1.483    0.4%
   45    35     339.6     1.931    0.5%
   46    35     342.1      1.37    0.4%
   47    35     340.5     1.597    0.4%
   48    35     348.1     1.339    0.3%
   49    35     350.5     1.594    0.4%
   50    35     351.6     1.773    0.5%
   51    35     354.7      2.06    0.5%
   52    35     356.5     1.288    0.3%
   53    35     357.2     1.665    0.4%
   54    35       359     1.362    0.3%
   55    35     355.1     1.576    0.4%
   56    35     360.3     1.017    0.2%
   57    35     363.3     2.096    0.5%
   58    35     365.1     1.427    0.3%
   59    35       362     1.427    0.3%
   60    35     362.3     1.415    0.3%
   61    35     364.9     1.354    0.3%
   62    35     374.6     0.904    0.2%
   63    35     370.7     1.259    0.3%
   64    35     374.1     1.518    0.4%
   65    35     387.8     1.601    0.4%
   66    35     386.4     1.852    0.4%
   67    35     392.2     1.528    0.3%
   68    35     393.9     1.833    0.4%
   69    35     392.8      0.79    0.2%
   70    35     391.4     1.655    0.4%
   71    35     396.7     2.201    0.5%
   72    35     393.4     1.905    0.4%
   73    35     400.7     2.304    0.5%
   74     0       167     0.391    0.2%
   74     1     207.4     0.827    0.3%
   74     2     235.9     0.808    0.3%
   74     3     195.6     0.771    0.3%
   74     4     210.4     0.768    0.3%
   74     5     224.2     1.111    0.4%
   74     6     234.9     0.554    0.2%
   74     7     251.6     0.814    0.3%
   74     8     255.7     1.208    0.4%
   74     9     263.1     0.656    0.2%
   74    10     267.9     1.221    0.4%
   74    11     279.7     1.182    0.4%
   74    12     284.9     0.756    0.2%
   74    13     290.9      1.24    0.4%
   74    14       298     0.716    0.2%
   74    15     302.4     1.181    0.3%
   74    16     308.1     1.185    0.3%
   74    17     316.5     0.875    0.2%
   74    18     324.8     1.112    0.3%
   74    19     331.6     1.473    0.4%
   74    20     341.8     1.341    0.3%
   74    21       343     1.648    0.4%
   74    22     347.7     1.505    0.4%
   74    23     352.9     1.542    0.4%
   74    24     357.4     2.895    0.8%
   74    25     360.4     1.896    0.5%
   74    26     371.1     1.866    0.5%
   74    27     371.7     0.507    0.1%
   74    28     379.4     1.615    0.4%
   74    29     383.5     2.943    0.7%
   74    30     385.1     2.955    0.7%
   74    31     387.8     1.086    0.2%
   74    32     394.8      1.82    0.4%
   74    33     391.6     1.546    0.3%
   74    34     399.8     2.463    0.6%
   74    35     408.1     2.637    0.6%

Quality and confidence:
param     error
n         0.018
m         0.033

Model:
Time ~=    12.52
    + n    2.628
    + m    5.857
              µs

Reads = 21 + (0 * n) + (0 * m)
Writes = 3 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "cancel_leave_candidates", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:2 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    2.458
    + m    5.363
              µs

Reads = 5 + (0 * n) + (0 * m)
Writes = 3 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
   17    35     158.7     0.998    0.6%
   18    35     161.6     0.745    0.4%
   19    35     165.9     0.999    0.6%
   20    35     168.9      1.27    0.7%
   21    35     171.8     0.621    0.3%
   22    35     174.4     0.506    0.2%
   23    35     176.9     0.598    0.3%
   24    35     180.3      0.53    0.2%
   25    35     183.7     0.562    0.3%
   26    35     185.2     0.923    0.4%
   27    35     188.4     0.593    0.3%
   28    35     189.8     0.827    0.4%
   29    35     192.4     0.677    0.3%
   30    35     194.1     0.494    0.2%
   31    35     197.1     0.821    0.4%
   32    35     199.3     0.683    0.3%
   33    35     200.7     0.826    0.4%
   34    35     206.7     1.353    0.6%
   35    35     207.3     0.984    0.4%
   36    35     208.8     0.705    0.3%
   37    35     212.7     0.692    0.3%
   38    35     219.1     0.922    0.4%
   39    35     221.2     0.957    0.4%
   40    35     224.8      0.65    0.2%
   41    35     227.8     1.153    0.5%
   42    35     230.3     0.963    0.4%
   43    35     233.1     1.373    0.5%
   44    35     233.4     0.936    0.4%
   45    35     237.7     1.487    0.6%
   46    35     238.7     0.664    0.2%
   47    35     241.7     0.856    0.3%
   48    35     242.2     0.786    0.3%
   49    35       244     1.178    0.4%
   50    35     247.7     1.375    0.5%
   51    35     250.8     1.099    0.4%
   52    35     249.7     1.082    0.4%
   53    35     252.1     0.728    0.2%
   54    35     254.8     1.329    0.5%
   55    35     255.6     1.223    0.4%
   56    35     258.9     0.907    0.3%
   57    35       259     0.703    0.2%
   58    35     259.8     1.343    0.5%
   59    35     261.2     1.417    0.5%
   60    35     262.3     1.388    0.5%
   61    35     261.5     0.824    0.3%
   62    35     270.7     1.603    0.5%
   63    35     269.1     1.313    0.4%
   64    35     269.5      1.22    0.4%
   65    35     280.1     2.072    0.7%
   66    35     286.6     1.452    0.5%
   67    35     291.8     1.766    0.6%
   68    35     293.3      0.69    0.2%
   69    35       291     1.648    0.5%
   70    35     292.6     0.777    0.2%
   71    35     295.5     1.609    0.5%
   72    35     293.8     1.009    0.3%
   73    35     295.9     1.068    0.3%
   74     0     92.76     0.352    0.3%
   74     1     129.4     0.329    0.2%
   74     2     157.5     0.617    0.3%
   74     3     118.3     0.456    0.3%
   74     4     130.8     0.247    0.1%
   74     5       140     0.801    0.5%
   74     6     154.4     1.353    0.8%
   74     7     160.6      0.97    0.6%
   74     8       170     1.315    0.7%
   74     9     180.4     0.543    0.3%
   74    10     184.1     0.909    0.4%
   74    11     192.4     1.162    0.6%
   74    12     197.3     1.164    0.5%
   74    13     203.6     1.346    0.6%
   74    14     211.1     1.365    0.6%
   74    15     216.8      1.24    0.5%
   74    16     227.1     1.129    0.4%
   74    17     230.5      0.84    0.3%
   74    18     235.1     0.584    0.2%
   74    19     243.5     0.864    0.3%
   74    20     243.8     0.949    0.3%
   74    21       251     1.698    0.6%
   74    22       255     1.578    0.6%
   74    23     256.2     0.738    0.2%
   74    24     262.1     1.658    0.6%
   74    25     264.2     1.563    0.5%
   74    26     267.5     0.952    0.3%
   74    27     273.5     0.962    0.3%
   74    28     278.7     1.198    0.4%
   74    29     283.8      2.72    0.9%
   74    30     287.8     3.383    1.1%
   74    31     292.3     2.313    0.7%
   74    32     290.7     1.009    0.3%
   74    33     296.7     1.684    0.5%
   74    34     300.9     2.441    0.8%
   74    35     305.3     1.482    0.4%

Quality and confidence:
param     error
n         0.017
m         0.031

Model:
Time ~=        0
    + n    2.599
    + m    5.124
              µs

Reads = 5 + (0 * n) + (0 * m)
Writes = 3 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "execute_leave_candidates", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking Round (r:1 w:0)
Storage: ParachainStaking Unstaking (r:36 w:36)
Storage: ParachainStaking DelegatorState (r:35 w:35)
Storage: Session Validators (r:1 w:0)
Storage: Session DisabledValidators (r:1 w:1)
Storage: System Digest (r:1 w:1)
Storage: ParachainStaking CounterForCandidatePool (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    4.347
    + m    24.65
              µs

Reads = 7 + (0 * n) + (2 * m)
Writes = 5 + (0 * n) + (2 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
   17    35     717.6     2.633    0.3%
   18    35     735.3     3.218    0.4%
   19    35     735.2     2.535    0.3%
   20    35     751.3     3.139    0.4%
   21    35     743.9     2.406    0.3%
   22    35     766.7     2.258    0.2%
   23    35       765     2.815    0.3%
   24    35     761.8     4.606    0.6%
   25    35     773.7     2.627    0.3%
   26    35     777.2     1.543    0.1%
   27    35       779     2.616    0.3%
   28    35     785.6     3.075    0.3%
   29    35     795.5     1.852    0.2%
   30    35     787.4     2.288    0.2%
   31    35     808.1     1.792    0.2%
   32    35     815.7     5.866    0.7%
   33    35       808     2.898    0.3%
   34    35     820.8     2.074    0.2%
   35    35     839.4     3.875    0.4%
   36    35     839.6     3.768    0.4%
   37    35     841.5     2.152    0.2%
   38    35     840.1     1.854    0.2%
   39    35     860.8     2.335    0.2%
   40    35     860.6     2.776    0.3%
   41    35     860.3     2.364    0.2%
   42    35     874.4     5.354    0.6%
   43    35     862.3     5.509    0.6%
   44    35     871.9     3.834    0.4%
   45    35     878.1     2.303    0.2%
   46    35     884.4      4.38    0.4%
   47    35     885.3     3.032    0.3%
   48    35     882.5     3.026    0.3%
   49    35     886.4     2.758    0.3%
   50    35     890.4     1.509    0.1%
   51    35     896.9     3.486    0.3%
   52    35     896.4     3.067    0.3%
   53    35     899.1     3.021    0.3%
   54    35     912.7     3.049    0.3%
   55    35     901.5     2.213    0.2%
   56    35     903.8     2.164    0.2%
   57    35     917.1     2.391    0.2%
   58    35     907.6     2.249    0.2%
   59    35     904.7     3.269    0.3%
   60    35     909.6     3.729    0.4%
   61    35     931.4     4.516    0.4%
   62    35     932.8     4.674    0.5%
   63    35     943.7     5.224    0.5%
   64    35     947.1     1.997    0.2%
   65    35     946.6     4.152    0.4%
   66    35     960.3     1.971    0.2%
   67    35     967.1     3.892    0.4%
   68    35     966.5      3.45    0.3%
   69    35     976.9     3.045    0.3%
   70    35     964.9     4.954    0.5%
   71    35     985.5     11.51    1.1%
   72    35     972.4     2.803    0.2%
   73    35     970.6     3.768    0.3%
   74     0     98.11     0.391    0.3%
   74     1     155.3     0.193    0.1%
   74     2       208     0.585    0.2%
   74     3     182.9     0.537    0.2%
   74     4     215.6     1.206    0.5%
   74     5     247.7     0.899    0.3%
   74     6     272.5      0.91    0.3%
   74     7     298.8     0.822    0.2%
   74     8     323.1      0.85    0.2%
   74     9     353.2     0.579    0.1%
   74    10     376.3     1.081    0.2%
   74    11     400.8     1.192    0.2%
   74    12     428.6     1.552    0.3%
   74    13       445     0.959    0.2%
   74    14     473.1     1.531    0.3%
   74    15     499.3     2.928    0.5%
   74    16     521.9     1.723    0.3%
   74    17     555.8     1.823    0.3%
   74    18     577.8     1.907    0.3%
   74    19     597.7     2.501    0.4%
   74    20     631.3     2.893    0.4%
   74    21     650.2      2.32    0.3%
   74    22     673.6     4.462    0.6%
   74    23     700.8     2.842    0.4%
   74    24     717.3     2.708    0.3%
   74    25     740.9     3.338    0.4%
   74    26     770.6     1.624    0.2%
   74    27     792.4     1.937    0.2%
   74    28     826.2     4.341    0.5%
   74    29       840     3.835    0.4%
   74    30     869.6     3.892    0.4%
   74    31       888     3.389    0.3%
   74    32     917.2     4.037    0.4%
   74    33     927.6     3.931    0.4%
   74    34     960.4     5.776    0.6%
   74    35     981.6     3.847    0.3%

Quality and confidence:
param     error
n         0.022
m          0.04

Model:
Time ~=        0
    + n    4.364
    + m    24.69
              µs

Reads = 7 + (0 * n) + (2 * m)
Writes = 5 + (0 * n) + (2 * m)

Pallet: "parachain_staking", Extrinsic: "candidate_stake_more", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking MaxCollatorCandidateStake (r:1 w:0)
Storage: System Account (r:1 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: Balances Locks (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.262
    + m    6.793
    + u    0.449
              µs

Reads = 8 + (0 * n) + (0 * m) + (0 * u)
Writes = 6 + (0 * n) + (0 * m) + (0 * u)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m     u   mean µs  sigma µs       %
    1    35     9     119.3     0.343    0.2%
    2    35     9     119.2     0.505    0.4%
    3    35     9     138.6     0.338    0.2%
    4    35     9     162.1      0.32    0.1%
    5    35     9     164.4     0.514    0.3%
    6    35     9     185.5     0.779    0.4%
    7    35     9     199.5     0.747    0.3%
    8    35     9     153.1     0.419    0.2%
    9    35     9     160.3     0.404    0.2%
   10    35     9     166.4     0.451    0.2%
   11    35     9     178.7     0.939    0.5%
   12    35     9     186.1     0.672    0.3%
   13    35     9     191.3     1.056    0.5%
   14    35     9     196.5     0.556    0.2%
   15    35     9     203.3     0.508    0.2%
   16    35     9     210.8     0.931    0.4%
   17    35     9     216.3     0.956    0.4%
   18    35     9     221.7     0.668    0.3%
   19    35     9     224.1     0.909    0.4%
   20    35     9       227     0.669    0.2%
   21    35     9     233.7     0.808    0.3%
   22    35     9     239.9     1.026    0.4%
   23    35     9     245.1     1.493    0.6%
   24    35     9     246.5     0.594    0.2%
   25    35     9       251     1.214    0.4%
   26    35     9     255.6     1.133    0.4%
   27    35     9     257.1      0.98    0.3%
   28    35     9     261.3     1.275    0.4%
   29    35     9     263.3     1.178    0.4%
   30    35     9     268.7     1.033    0.3%
   31    35     9       277     1.221    0.4%
   32    35     9     277.4     1.026    0.3%
   33    35     9       283     0.925    0.3%
   34    35     9     288.6     1.205    0.4%
   35    35     9     292.4     0.719    0.2%
   36    35     9     292.9     0.974    0.3%
   37    35     9     295.1     1.357    0.4%
   38    35     9     296.5     1.662    0.5%
   39    35     9     303.6      1.33    0.4%
   40    35     9     307.4     1.978    0.6%
   41    35     9       309     0.924    0.2%
   42    35     9     311.6     1.394    0.4%
   43    35     9     313.7     0.854    0.2%
   44    35     9     316.4     1.937    0.6%
   45    35     9     317.2     1.041    0.3%
   46    35     9     319.3     1.411    0.4%
   47    35     9     320.8      1.16    0.3%
   48    35     9       326     1.583    0.4%
   49    35     9       324     0.809    0.2%
   50    35     9     328.2     1.779    0.5%
   51    35     9     333.6     1.773    0.5%
   52    35     9     336.7     1.839    0.5%
   53    35     9     338.1     2.366    0.6%
   54    35     9     341.3     1.581    0.4%
   55    35     9     339.4       1.2    0.3%
   56    35     9     342.8     1.487    0.4%
   57    35     9     342.5     1.313    0.3%
   58    35     9     345.9     1.625    0.4%
   59    35     9     347.6     1.208    0.3%
   60    35     9     351.2     1.099    0.3%
   61    35     9     356.8      1.17    0.3%
   62    35     9       359     2.322    0.6%
   63    35     9     361.2     1.558    0.4%
   64    35     9     361.9     1.978    0.5%
   65    35     9       370     1.659    0.4%
   66    35     9     375.3     2.613    0.6%
   67    35     9     376.8     1.053    0.2%
   68    35     9     376.1      1.35    0.3%
   69    35     9     383.2     1.565    0.4%
   70    35     9     379.9     2.051    0.5%
   71    35     9     381.6      1.05    0.2%
   72    35     9     384.9     2.137    0.5%
   73    35     9     387.8     2.902    0.7%
   74     0     9     118.5     0.421    0.3%
   74     1     9       162      0.41    0.2%
   74     2     9     183.5     0.583    0.3%
   74     3     9     156.1     0.808    0.5%
   74     4     9     176.1     0.548    0.3%
   74     5     9     193.9     0.516    0.2%
   74     6     9     207.9     0.762    0.3%
   74     7     9     219.3     1.091    0.4%
   74     8     9     225.2       0.3    0.1%
   74     9     9       236     0.723    0.3%
   74    10     9       241     0.662    0.2%
   74    11     9       248     1.219    0.4%
   74    12     9     254.6     0.762    0.2%
   74    13     9       261     0.815    0.3%
   74    14     9     274.2     1.471    0.5%
   74    15     9     279.4     1.162    0.4%
   74    16     9     289.2     1.581    0.5%
   74    17     9     294.8     2.942    0.9%
   74    18     9     296.9     1.436    0.4%
   74    19     9     307.8     1.697    0.5%
   74    20     9     313.7     1.328    0.4%
   74    21     9       322     2.125    0.6%
   74    22     9     326.6     2.629    0.8%
   74    23     9     330.3     1.256    0.3%
   74    24     9     339.7     2.187    0.6%
   74    25     9     344.4     1.587    0.4%
   74    26     9     349.1     3.017    0.8%
   74    27     9     352.9     1.895    0.5%
   74    28     9     357.3     1.899    0.5%
   74    29     9     367.7     1.629    0.4%
   74    30     9     365.4     1.491    0.4%
   74    31     9     377.9     2.819    0.7%
   74    32     9     374.9       2.3    0.6%
   74    33     9       382     2.121    0.5%
   74    34     9     388.7     1.547    0.3%
   74    35     0     386.4     1.417    0.3%
   74    35     1     385.7     2.477    0.6%
   74    35     2     388.3     1.885    0.4%
   74    35     3     382.8     2.742    0.7%
   74    35     4     388.1      1.85    0.4%
   74    35     5     384.6     1.524    0.3%
   74    35     6     385.2     2.115    0.5%
   74    35     7     387.7     1.897    0.4%
   74    35     8     387.4     2.529    0.6%
   74    35     9     390.1     3.458    0.8%

Quality and confidence:
param     error
n         0.019
m         0.046
u         0.273

Model:
Time ~=        0
    + n    3.394
    + m    6.905
    + u    3.173
              µs

Reads = 8 + (0 * n) + (0 * m) + (0 * u)
Writes = 6 + (0 * n) + (0 * m) + (0 * u)

Pallet: "parachain_staking", Extrinsic: "candidate_stake_less", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.269
    + m     6.71
              µs

Reads = 5 + (0 * n) + (0 * m)
Writes = 4 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
    1    35     89.55      0.24    0.2%
    2    35     89.62     0.258    0.2%
    3    35     109.9     0.171    0.1%
    4    35     134.1     0.466    0.3%
    5    35     134.7     0.565    0.4%
    6    35     153.3     0.754    0.4%
    7    35       170     0.705    0.4%
    8    35     122.7     0.666    0.5%
    9    35     130.6     0.331    0.2%
   10    35       136     0.468    0.3%
   11    35     141.7     0.553    0.3%
   12    35     150.6     0.516    0.3%
   13    35     156.8     0.508    0.3%
   14    35     161.1     0.415    0.2%
   15    35     166.5     0.497    0.2%
   16    35       172     0.799    0.4%
   17    35     175.1     0.747    0.4%
   18    35     180.6     0.315    0.1%
   19    35     182.6     0.541    0.2%
   20    35     187.8      0.69    0.3%
   21    35       193      0.89    0.4%
   22    35     198.4     0.934    0.4%
   23    35     201.2     0.807    0.4%
   24    35     203.1     0.307    0.1%
   25    35     208.8     0.895    0.4%
   26    35     211.9     1.477    0.6%
   27    35     215.9     0.694    0.3%
   28    35     217.1     1.264    0.5%
   29    35     219.5     0.665    0.3%
   30    35     225.6     0.778    0.3%
   31    35     233.3     0.966    0.4%
   32    35     235.8     0.753    0.3%
   33    35     241.7     1.338    0.5%
   34    35     244.6     1.213    0.4%
   35    35     247.4     0.751    0.3%
   36    35     251.2     1.115    0.4%
   37    35     254.9     1.234    0.4%
   38    35     258.4     1.581    0.6%
   39    35     261.5     0.903    0.3%
   40    35     263.7     1.122    0.4%
   41    35     266.7     1.314    0.4%
   42    35     274.1     1.043    0.3%
   43    35     275.3      0.98    0.3%
   44    35     278.3     1.718    0.6%
   45    35     276.1     1.181    0.4%
   46    35     281.5     1.575    0.5%
   47    35     281.8     1.099    0.3%
   48    35     284.8     1.102    0.3%
   49    35     285.7     1.141    0.3%
   50    35     290.1     1.629    0.5%
   51    35     289.1     1.691    0.5%
   52    35     293.9     2.321    0.7%
   53    35     296.6     0.794    0.2%
   54    35     297.9     1.235    0.4%
   55    35     300.1     2.016    0.6%
   56    35     298.3     1.324    0.4%
   57    35     300.2     1.835    0.6%
   58    35       307     1.503    0.4%
   59    35     309.2     1.108    0.3%
   60    35     311.9     1.888    0.6%
   61    35     317.4     0.944    0.2%
   62    35     319.6     0.704    0.2%
   63    35       324     1.228    0.3%
   64    35     327.1     1.623    0.4%
   65    35       330     0.922    0.2%
   66    35     334.2      1.58    0.4%
   67    35     338.8     1.415    0.4%
   68    35     344.6     1.682    0.4%
   69    35     339.1     2.152    0.6%
   70    35     342.2     1.431    0.4%
   71    35     346.8     1.933    0.5%
   72    35     344.8     2.135    0.6%
   73    35     347.4     1.561    0.4%
   74     0     91.64     0.194    0.2%
   74     1       135      0.42    0.3%
   74     2     151.4     0.294    0.1%
   74     3     122.4     0.385    0.3%
   74     4     139.8     0.387    0.2%
   74     5     158.5     0.933    0.5%
   74     6     169.4       0.5    0.2%
   74     7     179.6     0.473    0.2%
   74     8     186.1     0.908    0.4%
   74     9     196.4     0.842    0.4%
   74    10     203.6     0.457    0.2%
   74    11     209.1     1.344    0.6%
   74    12     214.1     0.919    0.4%
   74    13     222.8     1.063    0.4%
   74    14     233.1     0.988    0.4%
   74    15     242.7     0.451    0.1%
   74    16     250.9     1.698    0.6%
   74    17     255.8     0.667    0.2%
   74    18     263.4     1.652    0.6%
   74    19     266.8     0.952    0.3%
   74    20     276.8     0.586    0.2%
   74    21     284.2     1.904    0.6%
   74    22     286.8     1.275    0.4%
   74    23     294.9     2.291    0.7%
   74    24       296     1.741    0.5%
   74    25     305.6     1.704    0.5%
   74    26     309.1      1.39    0.4%
   74    27     312.6     1.247    0.3%
   74    28     317.6      1.73    0.5%
   74    29     322.9     1.128    0.3%
   74    30     332.3     1.368    0.4%
   74    31     335.5     1.926    0.5%
   74    32     342.3     0.952    0.2%
   74    33     345.5     1.849    0.5%
   74    34     352.1     2.134    0.6%
   74    35     354.3     2.212    0.6%

Quality and confidence:
param     error
n         0.016
m          0.04

Model:
Time ~=        0
    + n    3.364
    + m    6.795
              µs

Reads = 5 + (0 * n) + (0 * m)
Writes = 4 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "join_delegators", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: ParachainStaking DelegatorState (r:1 w:1)
Storage: ParachainStaking CandidatePool (r:2 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: ParachainStaking LastDelegation (r:1 w:1)
Storage: ParachainStaking Round (r:1 w:0)
Storage: Balances Locks (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.601
    + m    7.546
              µs

Reads = 11 + (0 * n) + (0 * m)
Writes = 8 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
    1    34     139.4     0.453    0.3%
    2    34     139.2     0.397    0.2%
    3    34     163.3     0.572    0.3%
    4    34     185.4      0.52    0.2%
    5    34       185     0.656    0.3%
    6    34       208     0.557    0.2%
    7    34     231.5     2.004    0.8%
    8    34       171     0.409    0.2%
    9    34     177.6     0.721    0.4%
   10    34     185.9     1.416    0.7%
   11    34     197.1     0.802    0.4%
   12    34     208.4     0.919    0.4%
   13    34     214.2     0.401    0.1%
   14    34     219.5     0.317    0.1%
   15    34       227     0.492    0.2%
   16    34     234.4     0.591    0.2%
   17    34     240.9     0.773    0.3%
   18    34     244.3     0.517    0.2%
   19    34     247.3     0.881    0.3%
   20    34     253.6     1.352    0.5%
   21    34     257.9     0.639    0.2%
   22    34     267.9     1.383    0.5%
   23    34     270.3     1.337    0.4%
   24    34     277.5     0.616    0.2%
   25    34     279.6     1.025    0.3%
   26    34     284.3     0.711    0.2%
   27    34       292     1.352    0.4%
   28    34       293     0.953    0.3%
   29    34     293.2     0.921    0.3%
   30    34     302.4     2.189    0.7%
   31    34     304.8     0.974    0.3%
   32    34     313.3     1.891    0.6%
   33    34     318.7     1.447    0.4%
   34    34     321.1     0.638    0.1%
   35    34     325.1     1.132    0.3%
   36    34     331.3     1.392    0.4%
   37    34     328.8     0.655    0.1%
   38    34     333.9     2.101    0.6%
   39    34     336.5     0.992    0.2%
   40    34     336.5     1.655    0.4%
   41    34     342.1     1.721    0.5%
   42    34     342.1     1.916    0.5%
   43    34     348.6     2.008    0.5%
   44    34     351.8     1.541    0.4%
   45    34     358.9     1.068    0.2%
   46    34     360.8     1.147    0.3%
   47    34     363.2     1.757    0.4%
   48    34     365.1      1.55    0.4%
   49    34     366.9     1.585    0.4%
   50    34     368.1     2.354    0.6%
   51    34     368.5     1.728    0.4%
   52    34     372.6     1.741    0.4%
   53    34     376.7     1.242    0.3%
   54    34     374.4     0.628    0.1%
   55    34     382.5      1.24    0.3%
   56    34     384.5     2.803    0.7%
   57    34     386.1      1.47    0.3%
   58    34     389.9     1.904    0.4%
   59    34     393.9     1.788    0.4%
   60    34     395.1     1.556    0.3%
   61    34     398.8     1.594    0.3%
   62    34     402.2     1.537    0.3%
   63    34       401     1.586    0.3%
   64    34       404     1.547    0.3%
   65    34     409.4     2.766    0.6%
   66    34     412.2     2.643    0.6%
   67    34     418.4     2.257    0.5%
   68    34     418.5      1.55    0.3%
   69    34     420.2     2.368    0.5%
   70    34     419.5     2.091    0.4%
   71    34     418.6      2.02    0.4%
   72    34     421.3     2.035    0.4%
   73    34     422.1     1.685    0.3%
   74    34     430.8     2.711    0.6%
   75     1     186.8     0.445    0.2%
   75     2     220.8     0.952    0.4%
   75     3     181.4      0.23    0.1%
   75     4     199.3     0.901    0.4%
   75     5     220.5     0.429    0.1%
   75     6     234.8     0.512    0.2%
   75     7       245     0.974    0.3%
   75     8     252.3     0.775    0.3%
   75     9     263.1     0.861    0.3%
   75    10     272.6      1.65    0.6%
   75    11     279.5     0.588    0.2%
   75    12     286.9     1.189    0.4%
   75    13     298.1     1.584    0.5%
   75    14     309.1     1.986    0.6%
   75    15     317.8     1.227    0.3%
   75    16     328.5     1.289    0.3%
   75    17     331.9     1.173    0.3%
   75    18     340.9     1.942    0.5%
   75    19       348     1.521    0.4%
   75    20     358.2     2.099    0.5%
   75    21     363.4     2.904    0.7%
   75    22     368.3     2.601    0.7%
   75    23     369.2     2.546    0.6%
   75    24     380.2     2.158    0.5%
   75    25     387.5     2.416    0.6%
   75    26     391.2     2.081    0.5%
   75    27       397      0.84    0.2%
   75    28     407.2     3.659    0.8%
   75    29     409.9      2.76    0.6%
   75    30     416.6     2.863    0.6%
   75    31     416.6     2.711    0.6%
   75    32     426.3     1.578    0.3%
   75    33       434     1.878    0.4%
   75    34     434.7     2.486    0.5%

Quality and confidence:
param     error
n         0.021
m         0.055

Model:
Time ~=        0
    + n    3.702
    + m     7.73
              µs

Reads = 11 + (0 * n) + (0 * m)
Writes = 8 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "delegator_stake_more", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking DelegatorState (r:1 w:1)
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: Balances Locks (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.636
    + m    7.318
    + u    0.573
              µs

Reads = 8 + (0 * n) + (0 * m) + (0 * u)
Writes = 7 + (0 * n) + (0 * m) + (0 * u)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m     u   mean µs  sigma µs       %
    1    34     9     122.9     0.176    0.1%
    2    34     9     123.6     0.595    0.4%
    3    34     9     145.6     0.412    0.2%
    4    34     9     170.2     0.494    0.2%
    5    34     9     172.1     0.422    0.2%
    6    34     9     205.4     0.831    0.4%
    7    34     9     154.4     0.425    0.2%
    8    34     9     163.7     0.687    0.4%
    9    34     9     170.5     0.821    0.4%
   10    34     9     179.4     0.617    0.3%
   11    34     9     190.8     0.709    0.3%
   12    34     9     198.9     0.942    0.4%
   13    34     9     205.2      0.29    0.1%
   14    34     9       214     0.803    0.3%
   15    34     9     220.2     0.606    0.2%
   16    34     9     224.9     1.012    0.4%
   17    34     9     230.6     1.328    0.5%
   18    34     9     234.6     0.561    0.2%
   19    34     9     238.4     1.284    0.5%
   20    34     9     245.3     0.767    0.3%
   21    34     9     250.8     1.196    0.4%
   22    34     9       256     0.671    0.2%
   23    34     9     260.6     0.785    0.3%
   24    34     9     265.2     1.202    0.4%
   25    34     9     273.1     1.554    0.5%
   26    34     9     274.8      0.83    0.3%
   27    34     9     279.1     0.903    0.3%
   28    34     9     282.9     0.767    0.2%
   29    34     9     284.4     1.348    0.4%
   30    34     9       293     0.901    0.3%
   31    34     9     299.3     1.791    0.5%
   32    34     9     303.8     1.939    0.6%
   33    34     9     306.8     1.297    0.4%
   34    34     9     313.6     0.701    0.2%
   35    34     9     314.2     1.692    0.5%
   36    34     9     317.6     1.107    0.3%
   37    34     9     322.5     0.528    0.1%
   38    34     9     325.8     1.907    0.5%
   39    34     9     329.6     1.632    0.4%
   40    34     9     329.7     0.756    0.2%
   41    34     9     335.1     1.107    0.3%
   42    34     9     338.3     1.536    0.4%
   43    34     9     344.1     1.628    0.4%
   44    34     9     344.3     0.925    0.2%
   45    34     9     348.6     1.617    0.4%
   46    34     9     350.3     1.872    0.5%
   47    34     9     349.5     2.077    0.5%
   48    34     9     352.4     0.691    0.1%
   49    34     9     355.9     3.335    0.9%
   50    34     9     357.7     2.514    0.7%
   51    34     9     358.3     1.881    0.5%
   52    34     9     361.6     1.677    0.4%
   53    34     9       364     2.604    0.7%
   54    34     9     369.5      1.35    0.3%
   55    34     9     370.1     2.039    0.5%
   56    34     9     370.6     1.437    0.3%
   57    34     9     373.6     2.136    0.5%
   58    34     9     380.8     2.552    0.6%
   59    34     9     379.6     2.448    0.6%
   60    34     9       384     1.217    0.3%
   61    34     9     390.1     2.635    0.6%
   62    34     9       388     1.807    0.4%
   63    34     9     395.5     2.153    0.5%
   64    34     9     395.2     2.877    0.7%
   65    34     9     397.3     2.102    0.5%
   66    34     9     403.4     1.378    0.3%
   67    34     9     408.2     1.994    0.4%
   68    34     9     413.1     2.292    0.5%
   69    34     9     408.6     1.415    0.3%
   70    34     9       414     2.306    0.5%
   71    34     9     416.4     0.997    0.2%
   72    34     9     416.2     3.482    0.8%
   73    34     9     416.7     2.007    0.4%
   74    34     9     421.3     2.093    0.4%
   75     1     9     173.6     0.471    0.2%
   75     2     9     208.5     0.888    0.4%
   75     3     9     171.2     0.625    0.3%
   75     4     9     192.4     0.657    0.3%
   75     5     9     214.2     0.718    0.3%
   75     6     9     228.8     0.338    0.1%
   75     7     9     236.5     0.551    0.2%
   75     8     9     245.8      0.96    0.3%
   75     9     9       254     1.272    0.5%
   75    10     9     264.1     0.616    0.2%
   75    11     9     270.6     1.389    0.5%
   75    12     9     280.3     1.888    0.6%
   75    13     9     287.7     1.541    0.5%
   75    14     9     300.3     1.532    0.5%
   75    15     9     309.5     0.911    0.2%
   75    16     9     317.1     0.802    0.2%
   75    17     9     325.2     1.327    0.4%
   75    18     9     330.3      1.56    0.4%
   75    19     9     337.4       1.3    0.3%
   75    20     9     348.4     1.336    0.3%
   75    21     9     353.5     1.734    0.4%
   75    22     9       355     1.369    0.3%
   75    23     9     361.5     1.767    0.4%
   75    24     9     371.3     1.603    0.4%
   75    25     9     374.8       2.7    0.7%
   75    26     9     377.7     1.344    0.3%
   75    27     9     385.7     1.758    0.4%
   75    28     9     392.2     3.305    0.8%
   75    29     9     398.2     2.482    0.6%
   75    30     9     403.5     4.165    1.0%
   75    31     9     412.5     3.179    0.7%
   75    32     9     416.3     1.724    0.4%
   75    33     9     418.1     0.718    0.1%
   75    34     1     415.4     0.972    0.2%
   75    34     2     418.6     1.883    0.4%
   75    34     3     426.3     2.996    0.7%
   75    34     4     420.5     1.658    0.3%
   75    34     5     423.7     1.495    0.3%
   75    34     6     419.1     1.136    0.2%
   75    34     7     422.5     2.947    0.6%
   75    34     8     421.6     1.384    0.3%
   75    34     9     423.5     2.072    0.4%

Quality and confidence:
param     error
n         0.021
m         0.055
u         0.357

Model:
Time ~=        0
    + n    3.715
    + m    7.671
    + u    4.001
              µs

Reads = 8 + (0 * n) + (0 * m) + (0 * u)
Writes = 7 + (0 * n) + (0 * m) + (0 * u)

Pallet: "parachain_staking", Extrinsic: "delegator_stake_less", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking DelegatorState (r:1 w:1)
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n    3.392
    + m    6.779
              µs

Reads = 6 + (0 * n) + (0 * m)
Writes = 5 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
    1    34     103.5     0.297    0.2%
    2    34     104.4     0.266    0.2%
    3    34     126.8     0.233    0.1%
    4    34     148.5     0.478    0.3%
    5    34     151.4     0.496    0.3%
    6    34     172.3     0.413    0.2%
    7    34     203.7     0.227    0.1%
    8    34     137.7     0.495    0.3%
    9    34     145.2     0.463    0.3%
   10    34     156.9      0.44    0.2%
   11    34     165.2      0.52    0.3%
   12    34     174.4     0.579    0.3%
   13    34     178.4     0.354    0.1%
   14    34     182.9      0.95    0.5%
   15    34     187.5     0.726    0.3%
   16    34     193.4     0.666    0.3%
   17    34     199.7     0.585    0.2%
   18    34     202.4     0.613    0.3%
   19    34     207.4     0.611    0.2%
   20    34     212.5     1.226    0.5%
   21    34     216.9     0.766    0.3%
   22    34     222.8     0.645    0.2%
   23    34     226.8     0.591    0.2%
   24    34     228.8      0.72    0.3%
   25    34     234.5     1.137    0.4%
   26    34     239.9     0.446    0.1%
   27    34     244.3     0.672    0.2%
   28    34     244.2     0.788    0.3%
   29    34     250.2     0.795    0.3%
   30    34     251.9     1.631    0.6%
   31    34     257.3      0.79    0.3%
   32    34     263.3     1.166    0.4%
   33    34     266.6     1.701    0.6%
   34    34     271.7     0.865    0.3%
   35    34     274.5     1.171    0.4%
   36    34     278.1     0.887    0.3%
   37    34     282.6     1.332    0.4%
   38    34     285.4     1.645    0.5%
   39    34     288.6     1.254    0.4%
   40    34     290.9     1.237    0.4%
   41    34     296.2     1.267    0.4%
   42    34     297.9     1.575    0.5%
   43    34       304     0.586    0.1%
   44    34     306.8     1.324    0.4%
   45    34     309.9     1.092    0.3%
   46    34     311.5     2.058    0.6%
   47    34     313.3     1.689    0.5%
   48    34     317.8      0.85    0.2%
   49    34     316.4     3.336    1.0%
   50    34     318.7     2.486    0.7%
   51    34     322.4     1.943    0.6%
   52    34       326     2.275    0.6%
   53    34     328.3     2.797    0.8%
   54    34     334.1     2.395    0.7%
   55    34     332.5     1.138    0.3%
   56    34     336.9     3.287    0.9%
   57    34     337.7     1.858    0.5%
   58    34     340.8     2.537    0.7%
   59    34     338.6     2.784    0.8%
   60    34     340.7     0.834    0.2%
   61    34     343.9     1.047    0.3%
   62    34     346.7     1.493    0.4%
   63    34     352.9     2.124    0.6%
   64    34     349.7      1.78    0.5%
   65    34     358.6     1.778    0.4%
   66    34     364.1     1.392    0.3%
   67    34     364.7     2.013    0.5%
   68    34     363.2     1.664    0.4%
   69    34     367.8     2.576    0.7%
   70    34     364.2     2.493    0.6%
   71    34       367     1.987    0.5%
   72    34     369.7     1.655    0.4%
   73    34     373.2     2.469    0.6%
   74    34     372.9     2.155    0.5%
   75     1     155.6     0.498    0.3%
   75     2     181.3     0.788    0.4%
   75     3       144     0.558    0.3%
   75     4     162.6     0.697    0.4%
   75     5       184     0.689    0.3%
   75     6     198.5     0.535    0.2%
   75     7     208.8     1.031    0.4%
   75     8     218.1     0.874    0.4%
   75     9     223.5     0.438    0.1%
   75    10       231     0.667    0.2%
   75    11     236.3       0.6    0.2%
   75    12     247.9     1.158    0.4%
   75    13     253.3     1.014    0.4%
   75    14     262.3     1.434    0.5%
   75    15     271.9     0.951    0.3%
   75    16     275.9     1.527    0.5%
   75    17     282.8     1.257    0.4%
   75    18     292.7     1.611    0.5%
   75    19     298.5     1.151    0.3%
   75    20     305.5     1.799    0.5%
   75    21     314.4     1.373    0.4%
   75    22     315.6     1.558    0.4%
   75    23     320.7     2.171    0.6%
   75    24     325.8     2.501    0.7%
   75    25     337.1     2.914    0.8%
   75    26     339.6     2.337    0.6%
   75    27     347.1     1.175    0.3%
   75    28     350.6     1.213    0.3%
   75    29     353.9     2.405    0.6%
   75    30     359.4     1.524    0.4%
   75    31     360.1     1.882    0.5%
   75    32     369.5     2.055    0.5%
   75    33     369.3     1.393    0.3%
   75    34     377.7     2.628    0.6%

Quality and confidence:
param     error
n         0.019
m         0.051

Model:
Time ~=        0
    + n      3.4
    + m    7.077
              µs

Reads = 6 + (0 * n) + (0 * m)
Writes = 5 + (0 * n) + (0 * m)

Pallet: "parachain_staking", Extrinsic: "revoke_delegation", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: ParachainStaking DelegatorState (r:1 w:1)
Storage: ParachainStaking CandidatePool (r:1 w:1)
Storage: ParachainStaking Unstaking (r:1 w:1)
Storage: ParachainStaking TopCandidates (r:1 w:1)
Storage: ParachainStaking MaxSelectedCandidates (r:1 w:0)
Storage: ParachainStaking TotalCollatorStake (r:1 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=        0
    + n      3.4
    + m    6.843
              µs

Reads = 6 + (0 * n) + (0 * m)
Writes = 5 + (0 * n) + (0 * m)

Min Squares Analysis
========
-- Extrinsic Time --

Data points distribution:
    n     m   mean µs  sigma µs       %
    1    34     109.1     0.188    0.1%
    2    34     109.4     0.378    0.3%
    3    34     136.2     0.536    0.3%
    4    34     160.2     0.276    0.1%
    5    34     159.3     0.723    0.4%
    6    34     183.8     3.128    1.7%
    7    34     206.9     0.799    0.3%
    8    34     142.6     0.596    0.4%
    9    34     149.8     0.733    0.4%
   10    34       158     0.698    0.4%
   11    34     166.8      0.36    0.2%
   12    34     176.9     0.425    0.2%
   13    34     181.7     0.898    0.4%
   14    34     188.6     0.516    0.2%
   15    34     195.3     0.766    0.3%
   16    34     202.7     0.645    0.3%
   17    34     205.2     0.718    0.3%
   18    34     210.1     0.766    0.3%
   19    34     214.2     0.591    0.2%
   20    34     218.4     1.104    0.5%
   21    34     224.5     0.881    0.3%
   22    34     230.8     0.991    0.4%
   23    34     234.7     0.896    0.3%
   24    34     238.9     1.115    0.4%
   25    34     245.1     0.873    0.3%
   26    34     247.8     0.638    0.2%
   27    34     251.3     1.597    0.6%
   28    34     253.7     1.169    0.4%
   29    34     258.1      1.35    0.5%
   30    34     261.3       1.2    0.4%
   31    34     263.8     0.765    0.2%
   32    34     270.4     1.026    0.3%
   33    34     274.5     0.692    0.2%
   34    34     278.4     0.873    0.3%
   35    34     282.1     0.798    0.2%
   36    34     288.3     1.301    0.4%
   37    34     291.8      1.48    0.5%
   38    34       293     1.318    0.4%
   39    34     298.5     2.549    0.8%
   40    34     298.4     1.542    0.5%
   41    34     304.3     1.662    0.5%
   42    34       308     1.095    0.3%
   43    34     311.7     1.667    0.5%
   44    34     313.8     2.067    0.6%
   45    34     316.8     1.787    0.5%
   46    34     317.6       1.4    0.4%
   47    34     320.1     1.729    0.5%
   48    34     319.5     1.827    0.5%
   49    34     324.1     1.566    0.4%
   50    34     324.3     2.796    0.8%
   51    34     327.6      1.07    0.3%
   52    34     336.1     1.167    0.3%
   53    34     337.2     2.439    0.7%
   54    34     338.6     1.471    0.4%
   55    34     339.9     1.581    0.4%
   56    34     345.1     2.043    0.5%
   57    34     344.7      1.39    0.4%
   58    34     348.4      1.95    0.5%
   59    34     347.4      1.58    0.4%
   60    34  <truncated>...

…hmarks -- benchmark pallet --chain=spiritnet-dev --steps=50 --repeat=20 --pallet=parachain-staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=pallets/parachain-staking/src/default_weights.rs --template=.maintain/weight-template.hbs
@weichweich
Copy link
Contributor

/bench runtime spiritnet-pallet pallet-did-lookup

@kilt-command-bot
Copy link

kilt-command-bot bot commented Jul 7, 2022

Benchmark Runtime Pallet for branch "tr-ethereum-did-linking" with command cargo run --quiet --release -p kilt-parachain --features=runtime-benchmarks -- benchmark pallet --chain=spiritnet-dev --steps=50 --repeat=20 --pallet=pallet-did-lookup --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=pallets/pallet-did-lookup/src/default_weights.rs --template=.maintain/weight-template.hbs

Toolchain: nightly-2022-05-11-x86_64-unknown-linux-gnu (overridden by '/home/benchbot/bench-bot/git/kilt-node/rust-toolchain.toml')
rustc 1.62.0-nightly (ecd44958e 2022-05-10)

Results
Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_sr25519", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    116.5
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    116.5
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_ed25519", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    114.1
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    114.1
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_account_multisig_ecdsa", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    105.5
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    105.5
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_eth_account", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=      110
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=      110
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "associate_sender", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:2)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=     58.8
              µs

Reads = 2
Writes = 4

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=     58.8
              µs

Reads = 2
Writes = 4

Pallet: "pallet_did_lookup", Extrinsic: "remove_sender_association", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    37.73
              µs

Reads = 2
Writes = 3

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    37.73
              µs

Reads = 2
Writes = 3

Pallet: "pallet_did_lookup", Extrinsic: "remove_account_association", Lowest values: [], Highest values: [], Steps: 50, Repeat: 20
Raw Storage Info
========
Storage: DidLookup ConnectedDids (r:1 w:1)
Storage: System Account (r:1 w:1)
Storage: DidLookup ConnectedAccounts (r:0 w:1)

Median Slopes Analysis
========
-- Extrinsic Time --

Model:
Time ~=    40.46
              µs

Reads = 2
Writes = 3

Min Squares Analysis
========
-- Extrinsic Time --

Model:
Time ~=    40.46
              µs

Reads = 2
Writes = 3


kiltbot and others added 6 commits July 7, 2022 07:54
…hmarks -- benchmark pallet --chain=spiritnet-dev --steps=50 --repeat=20 --pallet=pallet-did-lookup --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=pallets/pallet-did-lookup/src/default_weights.rs --template=.maintain/weight-template.hbs
…ime-benchmarks -- benchmark pallet --chain=spiritnet-dev --steps=50 --repeat=20 --pallet=parachain-staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=pallets/parachain-staking/src/default_weights.rs --template=.maintain/weight-template.hbs"

This reverts commit 8bd953d.
Copy link
Contributor

@weichweich weichweich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@weichweich weichweich dismissed wischli’s stale review July 7, 2022 08:03

You are out of office :)

@weichweich weichweich merged commit c8f4577 into develop Jul 7, 2022
@weichweich weichweich deleted the tr-ethereum-did-linking branch July 7, 2022 08:04
@wischli wischli mentioned this pull request Aug 30, 2022
2 tasks
wischli added a commit that referenced this pull request Aug 31, 2022
weichweich added a commit that referenced this pull request Aug 31, 2022
@wischli wischli added this to the 1.8.0 milestone Oct 5, 2022
wischli added a commit that referenced this pull request Nov 4, 2022
wischli added a commit that referenced this pull request Nov 14, 2022
wischli added a commit that referenced this pull request Nov 23, 2022
wischli added a commit that referenced this pull request Nov 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
next release This PR is required for the next release.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants