diff --git a/parachain/Cargo.lock b/parachain/Cargo.lock
index 01f9aeb123..99ecbf01dc 100644
--- a/parachain/Cargo.lock
+++ b/parachain/Cargo.lock
@@ -9255,6 +9255,7 @@ dependencies = [
"pallet-chain-bridge",
"pallet-collab-ai-common",
"pallet-collective",
+ "pallet-conviction-voting",
"pallet-curator",
"pallet-democracy",
"pallet-ethereum",
@@ -9291,6 +9292,7 @@ dependencies = [
"pallet-pool-proposal",
"pallet-preimage",
"pallet-proxy",
+ "pallet-referenda",
"pallet-scheduler",
"pallet-score-staking",
"pallet-session",
@@ -9304,6 +9306,7 @@ dependencies = [
"pallet-utility",
"pallet-vc-management",
"pallet-vesting",
+ "pallet-whitelist",
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
diff --git a/parachain/Cargo.toml b/parachain/Cargo.toml
index 9a6b259916..5457d59786 100644
--- a/parachain/Cargo.toml
+++ b/parachain/Cargo.toml
@@ -207,6 +207,7 @@ pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch
pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-bounties = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
+pallet-conviction-voting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
@@ -214,12 +215,14 @@ pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk", bra
pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
+pallet-referenda = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
+pallet-whitelist = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
pallet-tips = { git = "https://github.com/paritytech/polkadot-sdk", branch = "stable2407", default-features = false }
diff --git a/parachain/runtime/paseo/Cargo.toml b/parachain/runtime/paseo/Cargo.toml
index 3f0cb5a128..8df201903c 100644
--- a/parachain/runtime/paseo/Cargo.toml
+++ b/parachain/runtime/paseo/Cargo.toml
@@ -36,6 +36,7 @@ pallet-authorship = { workspace = true }
pallet-balances = { workspace = true }
pallet-bounties = { workspace = true }
pallet-collective = { workspace = true }
+pallet-conviction-voting = { workspace = true }
pallet-democracy = { workspace = true }
pallet-identity = { workspace = true }
pallet-membership = { workspace = true }
@@ -43,6 +44,7 @@ pallet-message-queue = { workspace = true }
pallet-multisig = { workspace = true }
pallet-preimage = { workspace = true }
pallet-proxy = { workspace = true }
+pallet-referenda = { workspace = true }
pallet-scheduler = { workspace = true }
pallet-session = { workspace = true }
pallet-sudo = { workspace = true }
@@ -53,6 +55,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true }
pallet-treasury = { workspace = true }
pallet-utility = { workspace = true }
pallet-vesting = { workspace = true }
+pallet-whitelist = { workspace = true }
cumulus-pallet-aura-ext = { workspace = true }
cumulus-pallet-dmp-queue = { workspace = true }
@@ -167,6 +170,7 @@ runtime-benchmarks = [
"pallet-bridge-transfer/runtime-benchmarks",
"pallet-chain-bridge/runtime-benchmarks",
"pallet-collective/runtime-benchmarks",
+ "pallet-conviction-voting/runtime-benchmarks",
"pallet-democracy/runtime-benchmarks",
"pallet-ethereum/runtime-benchmarks",
"pallet-evm-assertions/runtime-benchmarks",
@@ -183,6 +187,7 @@ runtime-benchmarks = [
"pallet-parachain-staking/runtime-benchmarks",
"pallet-preimage/runtime-benchmarks",
"pallet-proxy/runtime-benchmarks",
+ "pallet-referenda/runtime-benchmarks",
"pallet-scheduler/runtime-benchmarks",
"pallet-score-staking/runtime-benchmarks",
"pallet-sudo/runtime-benchmarks",
@@ -193,6 +198,7 @@ runtime-benchmarks = [
"pallet-utility/runtime-benchmarks",
"pallet-vc-management/runtime-benchmarks",
"pallet-vesting/runtime-benchmarks",
+ "pallet-whitelist/runtime-benchmarks",
"pallet-xcm/runtime-benchmarks",
"parachains-common/runtime-benchmarks",
"polkadot-parachain-primitives/runtime-benchmarks",
@@ -250,6 +256,7 @@ std = [
"pallet-bridge-transfer/std",
"pallet-chain-bridge/std",
"pallet-collective/std",
+ "pallet-conviction-voting/std",
"pallet-democracy/std",
"pallet-ethereum/std",
"pallet-evm-assertions/std",
@@ -277,6 +284,7 @@ std = [
"pallet-parachain-staking/std",
"pallet-preimage/std",
"pallet-proxy/std",
+ "pallet-referenda/std",
"pallet-scheduler/std",
"pallet-score-staking/std",
"pallet-session/std",
@@ -290,6 +298,7 @@ std = [
"pallet-utility/std",
"pallet-vc-management/std",
"pallet-vesting/std",
+ "pallet-whitelist/std",
"pallet-xcm/std",
"parachain-info/std",
"parachains-common/std",
@@ -353,6 +362,7 @@ try-runtime = [
"pallet-bridge-transfer/try-runtime",
"pallet-chain-bridge/try-runtime",
"pallet-collective/try-runtime",
+ "pallet-conviction-voting/try-runtime",
"pallet-democracy/try-runtime",
"pallet-ethereum/try-runtime",
"pallet-evm-assertions/try-runtime",
@@ -368,6 +378,7 @@ try-runtime = [
"pallet-parachain-staking/try-runtime",
"pallet-preimage/try-runtime",
"pallet-proxy/try-runtime",
+ "pallet-referenda/try-runtime",
"pallet-scheduler/try-runtime",
"pallet-score-staking/try-runtime",
"pallet-session/try-runtime",
@@ -380,6 +391,7 @@ try-runtime = [
"pallet-utility/try-runtime",
"pallet-vc-management/try-runtime",
"pallet-vesting/try-runtime",
+ "pallet-whitelist/try-runtime",
"pallet-xcm/try-runtime",
"parachain-info/try-runtime",
"polkadot-runtime-common/try-runtime",
diff --git a/parachain/runtime/paseo/src/governance_v2/mod.rs b/parachain/runtime/paseo/src/governance_v2/mod.rs
new file mode 100644
index 0000000000..c47a6866ed
--- /dev/null
+++ b/parachain/runtime/paseo/src/governance_v2/mod.rs
@@ -0,0 +1,89 @@
+// Copyright 2020-2024 Trust Computing GmbH.
+// This file is part of Litentry.
+//
+// Litentry is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Litentry is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Litentry. If not, see .
+
+//! # Gov2 config
+//! Includes runtime configs for these substrate pallets:
+//! 1. pallet-conviction-voting
+//! 2. pallet-whitelist
+//! 3. pallet-referenda
+
+use super::*;
+use frame_support::traits::EitherOf;
+
+mod origins;
+pub use origins::{
+ pallet_custom_origins, ReferendumCanceller, ReferendumKiller, WhitelistedCaller,
+};
+
+mod tracks;
+pub use tracks::TracksInfo;
+
+parameter_types! {
+ pub const VoteLockingPeriod: BlockNumber = 1 * DAYS;
+}
+
+impl pallet_conviction_voting::Config for Runtime {
+ type WeightInfo = weights::pallet_conviction_voting::WeightInfo;
+ type RuntimeEvent = RuntimeEvent;
+ type Currency = Balances;
+ type Polls = Referenda;
+ type MaxTurnout = frame_support::traits::TotalIssuanceOf;
+ // Maximum number of concurrent votes an account may have
+ type MaxVotes = ConstU32<20>;
+ // Minimum period of vote locking
+ type VoteLockingPeriod = VoteLockingPeriod;
+}
+
+parameter_types! {
+ pub const AlarmInterval: BlockNumber = 1;
+ pub const SubmissionDeposit: Balance = 100 * DOLLARS;
+ pub const UndecidingTimeout: BlockNumber = 21 * DAYS;
+}
+
+impl pallet_custom_origins::Config for Runtime {}
+
+// The purpose of this pallet is to queue calls to be dispatched as by root later => the Dispatch
+// origin corresponds to the Gov2 Whitelist track.
+impl pallet_whitelist::Config for Runtime {
+ type WeightInfo = weights::pallet_whitelist::WeightInfo;
+ type RuntimeEvent = RuntimeEvent;
+ type RuntimeCall = RuntimeCall;
+ type WhitelistOrigin = EnsureRootOrTwoThirdsCouncil;
+ type DispatchWhitelistedOrigin = EitherOf, WhitelistedCaller>;
+ type Preimages = Preimage;
+}
+
+pallet_referenda::impl_tracksinfo_get!(TracksInfo, Balance, BlockNumber);
+
+impl pallet_referenda::Config for Runtime {
+ type WeightInfo = weights::pallet_referenda::WeightInfo;
+ type RuntimeCall = RuntimeCall;
+ type RuntimeEvent = RuntimeEvent;
+ type Scheduler = Scheduler;
+ type Currency = Balances;
+ type SubmitOrigin = frame_system::EnsureSigned;
+ type CancelOrigin = EitherOf, ReferendumCanceller>;
+ type KillOrigin = EitherOf, ReferendumKiller>;
+ type Slash = Treasury;
+ type Votes = pallet_conviction_voting::VotesOf;
+ type Tally = pallet_conviction_voting::TallyOf;
+ type SubmissionDeposit = SubmissionDeposit;
+ type MaxQueued = ConstU32<100>;
+ type UndecidingTimeout = UndecidingTimeout;
+ type AlarmInterval = AlarmInterval;
+ type Tracks = TracksInfo;
+ type Preimages = Preimage;
+}
diff --git a/parachain/runtime/paseo/src/governance_v2/origins.rs b/parachain/runtime/paseo/src/governance_v2/origins.rs
new file mode 100644
index 0000000000..46fb4f4c9f
--- /dev/null
+++ b/parachain/runtime/paseo/src/governance_v2/origins.rs
@@ -0,0 +1,73 @@
+// Copyright 2020-2024 Trust Computing GmbH.
+// This file is part of Litentry.
+//
+// Litentry is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Litentry is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Litentry. If not, see .
+
+//! Custom origins for governance interventions.
+
+pub use pallet_custom_origins::*;
+
+#[frame_support::pallet]
+pub mod pallet_custom_origins {
+ use frame_support::pallet_prelude::*;
+
+ #[pallet::config]
+ pub trait Config: frame_system::Config {}
+
+ #[pallet::pallet]
+ pub struct Pallet(_);
+
+ #[derive(PartialEq, Eq, Clone, MaxEncodedLen, Encode, Decode, TypeInfo, RuntimeDebug)]
+ #[pallet::origin]
+ pub enum Origin {
+ /// Origin able to cancel referenda.
+ ReferendumCanceller,
+ /// Origin able to kill referenda.
+ ReferendumKiller,
+ /// Origin able to dispatch a whitelisted call.
+ WhitelistedCaller,
+ }
+
+ macro_rules! decl_unit_ensures {
+ ( $name:ident: $success_type:ty = $success:expr ) => {
+ pub struct $name;
+ impl> + From>
+ EnsureOrigin for $name
+ {
+ type Success = $success_type;
+ fn try_origin(o: O) -> Result {
+ o.into().and_then(|o| match o {
+ Origin::$name => Ok($success),
+ r => Err(O::from(r)),
+ })
+ }
+ #[cfg(feature = "runtime-benchmarks")]
+ fn try_successful_origin() -> Result {
+ Ok(O::from(Origin::$name))
+ }
+ }
+ };
+ ( $name:ident ) => { decl_unit_ensures! { $name : () = () } };
+ ( $name:ident: $success_type:ty = $success:expr, $( $rest:tt )* ) => {
+ decl_unit_ensures! { $name: $success_type = $success }
+ decl_unit_ensures! { $( $rest )* }
+ };
+ ( $name:ident, $( $rest:tt )* ) => {
+ decl_unit_ensures! { $name }
+ decl_unit_ensures! { $( $rest )* }
+ };
+ () => {}
+ }
+ decl_unit_ensures!(ReferendumCanceller, ReferendumKiller, WhitelistedCaller,);
+}
diff --git a/parachain/runtime/paseo/src/governance_v2/tracks.rs b/parachain/runtime/paseo/src/governance_v2/tracks.rs
new file mode 100644
index 0000000000..0bd12a6960
--- /dev/null
+++ b/parachain/runtime/paseo/src/governance_v2/tracks.rs
@@ -0,0 +1,125 @@
+// Copyright 2020-2024 Trust Computing GmbH.
+// This file is part of Litentry.
+//
+// Litentry is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Litentry is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Litentry. If not, see .
+
+//! Track configurations for governance.
+
+use super::*;
+use runtime_common::currency::DOLLARS;
+
+const fn percent(x: i32) -> sp_runtime::FixedI64 {
+ sp_runtime::FixedI64::from_rational(x as u128, 100)
+}
+const fn permill(x: i32) -> sp_runtime::FixedI64 {
+ sp_runtime::FixedI64::from_rational(x as u128, 1000)
+}
+
+use pallet_referenda::Curve;
+const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 4] = [
+ (
+ 0,
+ pallet_referenda::TrackInfo {
+ // Name of this track.
+ name: "root",
+ // A limit for the number of referenda on this track that can be being decided at once.
+ // For Root origin this should generally be just one.
+ max_deciding: 5,
+ // Amount that must be placed on deposit before a decision can be made.
+ decision_deposit: 100 * DOLLARS,
+ // Amount of time this must be submitted for before a decision can be made.
+ prepare_period: 1 * DAYS,
+ // Amount of time that a decision may take to be approved prior to cancellation.
+ decision_period: 14 * DAYS,
+ // Amount of time that the approval criteria must hold before it can be approved.
+ confirm_period: 1 * DAYS,
+ // Minimum amount of time that an approved proposal must be in the dispatch queue.
+ min_enactment_period: 1 * DAYS,
+ // Minimum aye votes as percentage of overall conviction-weighted votes needed for
+ // approval as a function of time into decision period.
+ min_approval: Curve::make_reciprocal(4, 14, percent(80), percent(50), percent(100)),
+ // Minimum pre-conviction aye-votes ("support") as percentage of overall population that
+ // is needed for approval as a function of time into decision period.
+ min_support: Curve::make_linear(14, 14, permill(5), percent(25)),
+ },
+ ),
+ (
+ 1,
+ pallet_referenda::TrackInfo {
+ name: "whitelisted_caller",
+ max_deciding: 100,
+ decision_deposit: 100 * DOLLARS,
+ prepare_period: 10 * MINUTES,
+ decision_period: 14 * DAYS,
+ confirm_period: 10 * MINUTES,
+ min_enactment_period: 30 * MINUTES,
+ min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)),
+ min_support: Curve::make_reciprocal(1, 14 * 24, percent(1), percent(0), percent(2)),
+ },
+ ),
+ (
+ 2,
+ pallet_referenda::TrackInfo {
+ name: "referendum_canceller",
+ max_deciding: 20,
+ decision_deposit: 10 * DOLLARS,
+ prepare_period: 1 * HOURS,
+ decision_period: 14 * DAYS,
+ confirm_period: 3 * HOURS,
+ min_enactment_period: 10 * MINUTES,
+ min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)),
+ min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(50)),
+ },
+ ),
+ (
+ 3,
+ pallet_referenda::TrackInfo {
+ name: "referendum_killer",
+ max_deciding: 100,
+ decision_deposit: 10 * DOLLARS,
+ prepare_period: 1 * HOURS,
+ decision_period: 14 * DAYS,
+ confirm_period: 3 * HOURS,
+ min_enactment_period: 10 * MINUTES,
+ min_approval: Curve::make_reciprocal(1, 14, percent(96), percent(50), percent(100)),
+ min_support: Curve::make_reciprocal(1, 14, percent(1), percent(0), percent(10)),
+ },
+ ),
+];
+
+pub struct TracksInfo;
+impl pallet_referenda::TracksInfo for TracksInfo {
+ type Id = u16;
+ type RuntimeOrigin = ::PalletsOrigin;
+ fn tracks() -> &'static [(Self::Id, pallet_referenda::TrackInfo)] {
+ &TRACKS_DATA[..]
+ }
+ fn track_for(id: &Self::RuntimeOrigin) -> Result {
+ if let Ok(system_origin) = frame_system::RawOrigin::try_from(id.clone()) {
+ match system_origin {
+ frame_system::RawOrigin::Root => Ok(0),
+ _ => Err(()),
+ }
+ } else if let Ok(custom_origin) = origins::Origin::try_from(id.clone()) {
+ match custom_origin {
+ origins::Origin::WhitelistedCaller => Ok(1),
+ // Referendum admins
+ origins::Origin::ReferendumCanceller => Ok(2),
+ origins::Origin::ReferendumKiller => Ok(3),
+ }
+ } else {
+ Err(())
+ }
+ }
+}
diff --git a/parachain/runtime/paseo/src/lib.rs b/parachain/runtime/paseo/src/lib.rs
index ea8c148dc5..911575ca13 100644
--- a/parachain/runtime/paseo/src/lib.rs
+++ b/parachain/runtime/paseo/src/lib.rs
@@ -99,6 +99,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
pub mod asset_config;
pub mod constants;
+pub mod governance_v2;
pub mod precompiles;
#[cfg(test)]
@@ -1393,6 +1394,12 @@ construct_runtime! {
InvestingPool: pallet_investing_pool = 153,
AIUSDConvertor: pallet_aiusd_convertor = 154,
+ // New Goverance
+ ConvictionVoting: pallet_conviction_voting = 170,
+ Referenda: pallet_referenda = 171,
+ Origins: governance_v2::pallet_custom_origins::{Origin} = 172,
+ Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 173,
+
// TMP
AccountFix: pallet_account_fix = 254,
Sudo: pallet_sudo = 255,
@@ -1529,6 +1536,9 @@ mod benches {
[pallet_chain_bridge,ChainBridge]
[pallet_bridge_transfer,BridgeTransfer]
[pallet_teebag, Teebag]
+ [pallet_conviction_voting, ConvictionVoting]
+ [pallet_referenda, Referenda]
+ [pallet_whitelist, Whitelist]
);
}
diff --git a/parachain/runtime/paseo/src/weights/mod.rs b/parachain/runtime/paseo/src/weights/mod.rs
index a92269089f..f8121f20e4 100644
--- a/parachain/runtime/paseo/src/weights/mod.rs
+++ b/parachain/runtime/paseo/src/weights/mod.rs
@@ -40,3 +40,7 @@ pub mod pallet_timestamp;
// pub mod pallet_treasury;
pub mod pallet_utility;
pub mod pallet_vc_management;
+
+pub mod pallet_conviction_voting;
+pub mod pallet_referenda;
+pub mod pallet_whitelist;
diff --git a/parachain/runtime/paseo/src/weights/pallet_conviction_voting.rs b/parachain/runtime/paseo/src/weights/pallet_conviction_voting.rs
new file mode 100644
index 0000000000..ab2f26c008
--- /dev/null
+++ b/parachain/runtime/paseo/src/weights/pallet_conviction_voting.rs
@@ -0,0 +1,200 @@
+// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md
+// for a list of specific contributors.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_conviction_voting`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-08-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `ggwpez-ref-hw`, CPU: `AMD EPYC 7232P 8-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("./polkadot-chain-spec.json")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=./polkadot-chain-spec.json
+// --steps=50
+// --repeat=20
+// --pallet=pallet_conviction_voting
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./polkadot-weights/
+// --header=./file_header.txt
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_conviction_voting`.
+pub struct WeightInfo(PhantomData);
+impl pallet_conviction_voting::WeightInfo for WeightInfo {
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(329), added: 2804, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Locks` (r:1 w:1)
+ /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Freezes` (r:1 w:0)
+ /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn vote_new() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `13480`
+ // Estimated: `42428`
+ // Minimum execution time: 193_972_000 picoseconds.
+ Weight::from_parts(196_922_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(329), added: 2804, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Locks` (r:1 w:1)
+ /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Freezes` (r:1 w:0)
+ /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn vote_existing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `14201`
+ // Estimated: `83866`
+ // Minimum execution time: 234_562_000 picoseconds.
+ Weight::from_parts(241_072_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(7))
+ }
+ /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn remove_vote() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `13919`
+ // Estimated: `83866`
+ // Minimum execution time: 186_301_000 picoseconds.
+ Weight::from_parts(201_021_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ fn remove_other_vote() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `13005`
+ // Estimated: `30706`
+ // Minimum execution time: 110_321_000 picoseconds.
+ Weight::from_parts(114_901_000, 0)
+ .saturating_add(Weight::from_parts(0, 30706))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:512 w:512)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(329), added: 2804, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Locks` (r:1 w:1)
+ /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Freezes` (r:1 w:0)
+ /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:50)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ /// The range of component `r` is `[0, 512]`.
+ fn delegate(r: u32, ) -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `28987 + r * (364 ±0)`
+ // Estimated: `83866 + r * (3411 ±0)`
+ // Minimum execution time: 92_131_000 picoseconds.
+ Weight::from_parts(1_084_574_814, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ // Standard Error: 76_865
+ .saturating_add(Weight::from_parts(23_984_016, 0).saturating_mul(r.into()))
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
+ .saturating_add(T::DbWeight::get().writes(45))
+ .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
+ .saturating_add(Weight::from_parts(0, 3411).saturating_mul(r.into()))
+ }
+ /// Storage: `ConvictionVoting::VotingFor` (r:2 w:2)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:512 w:512)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:50)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ /// The range of component `r` is `[0, 512]`.
+ fn undelegate(r: u32, ) -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `28868 + r * (364 ±0)`
+ // Estimated: `83866 + r * (3411 ±0)`
+ // Minimum execution time: 56_411_000 picoseconds.
+ Weight::from_parts(1_043_005_163, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ // Standard Error: 76_275
+ .saturating_add(Weight::from_parts(23_984_056, 0).saturating_mul(r.into()))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into())))
+ .saturating_add(T::DbWeight::get().writes(43))
+ .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into())))
+ .saturating_add(Weight::from_parts(0, 3411).saturating_mul(r.into()))
+ }
+ /// Storage: `ConvictionVoting::VotingFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::VotingFor` (`max_values`: None, `max_size`: Some(27241), added: 29716, mode: `MaxEncodedLen`)
+ /// Storage: `ConvictionVoting::ClassLocksFor` (r:1 w:1)
+ /// Proof: `ConvictionVoting::ClassLocksFor` (`max_values`: None, `max_size`: Some(329), added: 2804, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Locks` (r:1 w:1)
+ /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`)
+ /// Storage: `Balances::Freezes` (r:1 w:0)
+ /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(193), added: 2668, mode: `MaxEncodedLen`)
+ fn unlock() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `12270`
+ // Estimated: `30706`
+ // Minimum execution time: 137_861_000 picoseconds.
+ Weight::from_parts(148_901_000, 0)
+ .saturating_add(Weight::from_parts(0, 30706))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+}
diff --git a/parachain/runtime/paseo/src/weights/pallet_referenda.rs b/parachain/runtime/paseo/src/weights/pallet_referenda.rs
new file mode 100644
index 0000000000..daacbc6058
--- /dev/null
+++ b/parachain/runtime/paseo/src/weights/pallet_referenda.rs
@@ -0,0 +1,512 @@
+// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md
+// for a list of specific contributors.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_referenda`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-08-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `ggwpez-ref-hw`, CPU: `AMD EPYC 7232P 8-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("./polkadot-chain-spec.json")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=./polkadot-chain-spec.json
+// --steps=50
+// --repeat=20
+// --pallet=pallet_referenda
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./polkadot-weights/
+// --header=./file_header.txt
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_referenda`.
+pub struct WeightInfo(PhantomData);
+impl pallet_referenda::WeightInfo for WeightInfo {
+ /// Storage: `Referenda::ReferendumCount` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:0 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ fn submit() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `186`
+ // Estimated: `42428`
+ // Minimum execution time: 36_921_000 picoseconds.
+ Weight::from_parts(37_510_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn place_decision_deposit_preparing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `439`
+ // Estimated: `83866`
+ // Minimum execution time: 53_440_000 picoseconds.
+ Weight::from_parts(53_830_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:0)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn place_decision_deposit_queued() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `3226`
+ // Estimated: `42428`
+ // Minimum execution time: 63_310_000 picoseconds.
+ Weight::from_parts(64_100_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:0)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn place_decision_deposit_not_queued() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `3246`
+ // Estimated: `42428`
+ // Minimum execution time: 62_980_000 picoseconds.
+ Weight::from_parts(63_660_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:1)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn place_decision_deposit_passing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `439`
+ // Estimated: `83866`
+ // Minimum execution time: 63_141_000 picoseconds.
+ Weight::from_parts(63_991_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:1)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn place_decision_deposit_failing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `439`
+ // Estimated: `83866`
+ // Minimum execution time: 60_881_000 picoseconds.
+ Weight::from_parts(61_751_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ fn refund_decision_deposit() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `279`
+ // Estimated: `4401`
+ // Minimum execution time: 28_140_000 picoseconds.
+ Weight::from_parts(28_571_000, 0)
+ .saturating_add(Weight::from_parts(0, 4401))
+ .saturating_add(T::DbWeight::get().reads(1))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ fn refund_submission_deposit() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `269`
+ // Estimated: `4401`
+ // Minimum execution time: 28_281_000 picoseconds.
+ Weight::from_parts(28_860_000, 0)
+ .saturating_add(Weight::from_parts(0, 4401))
+ .saturating_add(T::DbWeight::get().reads(1))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn cancel() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `347`
+ // Estimated: `83866`
+ // Minimum execution time: 34_490_000 picoseconds.
+ Weight::from_parts(34_850_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::MetadataOf` (r:1 w:0)
+ /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Retries` (r:0 w:1)
+ /// Proof: `Scheduler::Retries` (`max_values`: None, `max_size`: Some(30), added: 2505, mode: `MaxEncodedLen`)
+ fn kill() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `588`
+ // Estimated: `83866`
+ // Minimum execution time: 97_201_000 picoseconds.
+ Weight::from_parts(98_191_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::TrackQueue` (r:1 w:0)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:1)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ fn one_fewer_deciding_queue_empty() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `102`
+ // Estimated: `5477`
+ // Minimum execution time: 9_970_000 picoseconds.
+ Weight::from_parts(10_150_000, 0)
+ .saturating_add(Weight::from_parts(0, 5477))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn one_fewer_deciding_failing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `3116`
+ // Estimated: `42428`
+ // Minimum execution time: 43_510_000 picoseconds.
+ Weight::from_parts(44_151_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn one_fewer_deciding_passing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `3116`
+ // Estimated: `42428`
+ // Minimum execution time: 46_160_000 picoseconds.
+ Weight::from_parts(46_531_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ fn nudge_referendum_requeued_insertion() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `2939`
+ // Estimated: `5477`
+ // Minimum execution time: 21_640_000 picoseconds.
+ Weight::from_parts(22_330_000, 0)
+ .saturating_add(Weight::from_parts(0, 5477))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ fn nudge_referendum_requeued_slide() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `2939`
+ // Estimated: `5477`
+ // Minimum execution time: 21_710_000 picoseconds.
+ Weight::from_parts(22_270_000, 0)
+ .saturating_add(Weight::from_parts(0, 5477))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:0)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ fn nudge_referendum_queued() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `2943`
+ // Estimated: `5477`
+ // Minimum execution time: 26_700_000 picoseconds.
+ Weight::from_parts(27_041_000, 0)
+ .saturating_add(Weight::from_parts(0, 5477))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:0)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::TrackQueue` (r:1 w:1)
+ /// Proof: `Referenda::TrackQueue` (`max_values`: None, `max_size`: Some(2012), added: 4487, mode: `MaxEncodedLen`)
+ fn nudge_referendum_not_queued() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `2963`
+ // Estimated: `5477`
+ // Minimum execution time: 26_050_000 picoseconds.
+ Weight::from_parts(26_730_000, 0)
+ .saturating_add(Weight::from_parts(0, 5477))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_no_deposit() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `299`
+ // Estimated: `42428`
+ // Minimum execution time: 21_870_000 picoseconds.
+ Weight::from_parts(22_361_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_preparing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `347`
+ // Estimated: `42428`
+ // Minimum execution time: 22_141_000 picoseconds.
+ Weight::from_parts(22_571_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ fn nudge_referendum_timed_out() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `206`
+ // Estimated: `4401`
+ // Minimum execution time: 13_930_000 picoseconds.
+ Weight::from_parts(14_230_000, 0)
+ .saturating_add(Weight::from_parts(0, 4401))
+ .saturating_add(T::DbWeight::get().reads(1))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:1)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_begin_deciding_failing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `347`
+ // Estimated: `42428`
+ // Minimum execution time: 30_280_000 picoseconds.
+ Weight::from_parts(30_600_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::DecidingCount` (r:1 w:1)
+ /// Proof: `Referenda::DecidingCount` (`max_values`: None, `max_size`: Some(14), added: 2489, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_begin_deciding_passing() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `347`
+ // Estimated: `42428`
+ // Minimum execution time: 32_150_000 picoseconds.
+ Weight::from_parts(32_601_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(3))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_begin_confirming() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `400`
+ // Estimated: `42428`
+ // Minimum execution time: 29_920_000 picoseconds.
+ Weight::from_parts(30_330_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_end_confirming() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `383`
+ // Estimated: `42428`
+ // Minimum execution time: 30_160_000 picoseconds.
+ Weight::from_parts(30_790_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_continue_not_confirming() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `400`
+ // Estimated: `42428`
+ // Minimum execution time: 28_641_000 picoseconds.
+ Weight::from_parts(29_180_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_continue_confirming() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `404`
+ // Estimated: `42428`
+ // Minimum execution time: 27_240_000 picoseconds.
+ Weight::from_parts(28_041_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:2 w:2)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Lookup` (r:1 w:1)
+ /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`)
+ fn nudge_referendum_approved() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `404`
+ // Estimated: `83866`
+ // Minimum execution time: 41_201_000 picoseconds.
+ Weight::from_parts(41_691_000, 0)
+ .saturating_add(Weight::from_parts(0, 83866))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:1)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Scheduler::Agenda` (r:1 w:1)
+ /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`)
+ fn nudge_referendum_rejected() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `400`
+ // Estimated: `42428`
+ // Minimum execution time: 29_940_000 picoseconds.
+ Weight::from_parts(30_460_000, 0)
+ .saturating_add(Weight::from_parts(0, 42428))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::StatusFor` (r:1 w:0)
+ /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::RequestStatusFor` (r:1 w:0)
+ /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::MetadataOf` (r:0 w:1)
+ /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+ fn set_some_metadata() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `350`
+ // Estimated: `4401`
+ // Minimum execution time: 20_600_000 picoseconds.
+ Weight::from_parts(21_060_000, 0)
+ .saturating_add(Weight::from_parts(0, 4401))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ /// Storage: `Referenda::ReferendumInfoFor` (r:1 w:0)
+ /// Proof: `Referenda::ReferendumInfoFor` (`max_values`: None, `max_size`: Some(936), added: 3411, mode: `MaxEncodedLen`)
+ /// Storage: `Referenda::MetadataOf` (r:1 w:1)
+ /// Proof: `Referenda::MetadataOf` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`)
+ fn clear_metadata() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `283`
+ // Estimated: `4401`
+ // Minimum execution time: 16_111_000 picoseconds.
+ Weight::from_parts(16_420_000, 0)
+ .saturating_add(Weight::from_parts(0, 4401))
+ .saturating_add(T::DbWeight::get().reads(2))
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+}
diff --git a/parachain/runtime/paseo/src/weights/pallet_whitelist.rs b/parachain/runtime/paseo/src/weights/pallet_whitelist.rs
new file mode 100644
index 0000000000..7aaf50f60a
--- /dev/null
+++ b/parachain/runtime/paseo/src/weights/pallet_whitelist.rs
@@ -0,0 +1,123 @@
+// Copyright (C) Parity Technologies and the various Polkadot contributors, see Contributions.md
+// for a list of specific contributors.
+// SPDX-License-Identifier: Apache-2.0
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Autogenerated weights for `pallet_whitelist`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
+//! DATE: 2024-08-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! WORST CASE MAP SIZE: `1000000`
+//! HOSTNAME: `ggwpez-ref-hw`, CPU: `AMD EPYC 7232P 8-Core Processor`
+//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("./polkadot-chain-spec.json")`, DB CACHE: 1024
+
+// Executed Command:
+// ./target/production/polkadot
+// benchmark
+// pallet
+// --chain=./polkadot-chain-spec.json
+// --steps=50
+// --repeat=20
+// --pallet=pallet_whitelist
+// --extrinsic=*
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --output=./polkadot-weights/
+// --header=./file_header.txt
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+#![allow(missing_docs)]
+
+use frame_support::{traits::Get, weights::Weight};
+use core::marker::PhantomData;
+
+/// Weight functions for `pallet_whitelist`.
+pub struct WeightInfo(PhantomData);
+impl pallet_whitelist::WeightInfo for WeightInfo {
+ /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+ /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::StatusFor` (r:1 w:0)
+ /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+ /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ fn whitelist_call() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `118`
+ // Estimated: `3556`
+ // Minimum execution time: 19_700_000 picoseconds.
+ Weight::from_parts(20_170_000, 0)
+ .saturating_add(Weight::from_parts(0, 3556))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+ /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::StatusFor` (r:1 w:0)
+ /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+ /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ fn remove_whitelisted_call() -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `247`
+ // Estimated: `3556`
+ // Minimum execution time: 18_890_000 picoseconds.
+ Weight::from_parts(19_351_000, 0)
+ .saturating_add(Weight::from_parts(0, 3556))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+ /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::PreimageFor` (r:1 w:1)
+ /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`)
+ /// Storage: `Preimage::StatusFor` (r:1 w:0)
+ /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+ /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// The range of component `n` is `[1, 4194294]`.
+ fn dispatch_whitelisted_call(n: u32, ) -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `323 + n * (1 ±0)`
+ // Estimated: `3787 + n * (1 ±0)`
+ // Minimum execution time: 31_320_000 picoseconds.
+ Weight::from_parts(31_561_000, 0)
+ .saturating_add(Weight::from_parts(0, 3787))
+ // Standard Error: 2
+ .saturating_add(Weight::from_parts(1_147, 0).saturating_mul(n.into()))
+ .saturating_add(T::DbWeight::get().reads(4))
+ .saturating_add(T::DbWeight::get().writes(3))
+ .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into()))
+ }
+ /// Storage: `Whitelist::WhitelistedCall` (r:1 w:1)
+ /// Proof: `Whitelist::WhitelistedCall` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::StatusFor` (r:1 w:0)
+ /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// Storage: `Preimage::RequestStatusFor` (r:1 w:1)
+ /// Proof: `Preimage::RequestStatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`)
+ /// The range of component `n` is `[1, 10000]`.
+ fn dispatch_whitelisted_call_with_preimage(n: u32, ) -> Weight {
+ // Proof Size summary in bytes:
+ // Measured: `247`
+ // Estimated: `3556`
+ // Minimum execution time: 23_100_000 picoseconds.
+ Weight::from_parts(23_541_355, 0)
+ .saturating_add(Weight::from_parts(0, 3556))
+ // Standard Error: 2
+ .saturating_add(Weight::from_parts(1_468, 0).saturating_mul(n.into()))
+ .saturating_add(T::DbWeight::get().reads(3))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+}