referrerpolicy=no-referrer-when-downgrade

pallet_collator_selection/
weights.rs

1// This file is part of Cumulus.
2
3// Copyright (C) Parity Technologies (UK) Ltd.
4// SPDX-License-Identifier: Apache-2.0
5
6// Licensed under the Apache License, Version 2.0 (the "License");
7// you may not use this file except in compliance with the License.
8// You may obtain a copy of the License at
9//
10// http://www.apache.org/licenses/LICENSE-2.0
11//
12// Unless required by applicable law or agreed to in writing, software
13// distributed under the License is distributed on an "AS IS" BASIS,
14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15// See the License for the specific language governing permissions and
16// limitations under the License.
17
18#![allow(unused_parens)]
19#![allow(unused_imports)]
20
21use core::marker::PhantomData;
22use frame_support::{
23	traits::Get,
24	weights::{constants::RocksDbWeight, Weight},
25};
26
27// The weight info trait for `pallet_collator_selection`.
28pub trait WeightInfo {
29	fn set_invulnerables(_b: u32) -> Weight;
30	fn add_invulnerable(_b: u32, _c: u32) -> Weight;
31	fn remove_invulnerable(_b: u32) -> Weight;
32	fn set_desired_candidates() -> Weight;
33	fn set_candidacy_bond(_c: u32, _k: u32) -> Weight;
34	fn register_as_candidate(_c: u32) -> Weight;
35	fn leave_intent(_c: u32) -> Weight;
36	fn update_bond(_c: u32) -> Weight;
37	fn take_candidate_slot(_c: u32) -> Weight;
38	fn note_author() -> Weight;
39	fn new_session(_c: u32, _r: u32) -> Weight;
40}
41
42/// Weights for pallet_collator_selection using the Substrate node and recommended hardware.
43pub struct SubstrateWeight<T>(PhantomData<T>);
44impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
45	fn set_invulnerables(b: u32) -> Weight {
46		Weight::from_parts(18_563_000_u64, 0)
47			// Standard Error: 0
48			.saturating_add(Weight::from_parts(68_000_u64, 0).saturating_mul(b as u64))
49			.saturating_add(T::DbWeight::get().writes(1_u64))
50	}
51	fn set_desired_candidates() -> Weight {
52		Weight::from_parts(16_363_000_u64, 0).saturating_add(T::DbWeight::get().writes(1_u64))
53	}
54	fn set_candidacy_bond(_c: u32, _k: u32) -> Weight {
55		Weight::from_parts(16_840_000_u64, 0).saturating_add(T::DbWeight::get().writes(1_u64))
56	}
57	fn register_as_candidate(c: u32) -> Weight {
58		Weight::from_parts(71_196_000_u64, 0)
59			// Standard Error: 0
60			.saturating_add(Weight::from_parts(198_000_u64, 0).saturating_mul(c as u64))
61			.saturating_add(T::DbWeight::get().reads(4_u64))
62			.saturating_add(T::DbWeight::get().writes(2_u64))
63	}
64	fn leave_intent(c: u32) -> Weight {
65		Weight::from_parts(55_336_000_u64, 0)
66			// Standard Error: 0
67			.saturating_add(Weight::from_parts(151_000_u64, 0).saturating_mul(c as u64))
68			.saturating_add(T::DbWeight::get().reads(1_u64))
69			.saturating_add(T::DbWeight::get().writes(2_u64))
70	}
71	fn update_bond(c: u32) -> Weight {
72		Weight::from_parts(55_336_000_u64, 0)
73			// Standard Error: 0
74			.saturating_add(Weight::from_parts(151_000_u64, 0).saturating_mul(c as u64))
75			.saturating_add(T::DbWeight::get().reads(1_u64))
76			.saturating_add(T::DbWeight::get().writes(2_u64))
77	}
78	fn take_candidate_slot(c: u32) -> Weight {
79		Weight::from_parts(71_196_000_u64, 0)
80			// Standard Error: 0
81			.saturating_add(Weight::from_parts(198_000_u64, 0).saturating_mul(c as u64))
82			.saturating_add(T::DbWeight::get().reads(4_u64))
83			.saturating_add(T::DbWeight::get().writes(2_u64))
84	}
85	fn note_author() -> Weight {
86		Weight::from_parts(71_461_000_u64, 0)
87			.saturating_add(T::DbWeight::get().reads(3_u64))
88			.saturating_add(T::DbWeight::get().writes(4_u64))
89	}
90	fn new_session(r: u32, c: u32) -> Weight {
91		Weight::from_parts(0_u64, 0)
92			// Standard Error: 1_010_000
93			.saturating_add(Weight::from_parts(109_961_000_u64, 0).saturating_mul(r as u64))
94			// Standard Error: 1_010_000
95			.saturating_add(Weight::from_parts(151_952_000_u64, 0).saturating_mul(c as u64))
96			.saturating_add(T::DbWeight::get().reads(1_u64.saturating_mul(r as u64)))
97			.saturating_add(T::DbWeight::get().reads(2_u64.saturating_mul(c as u64)))
98			.saturating_add(T::DbWeight::get().writes(2_u64.saturating_mul(r as u64)))
99			.saturating_add(T::DbWeight::get().writes(2_u64.saturating_mul(c as u64)))
100	}
101	/// Storage: Session NextKeys (r:1 w:0)
102	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
103	/// Storage: CollatorSelection Invulnerables (r:1 w:1)
104	/// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(641), added:
105	/// 1136, mode: MaxEncodedLen) Storage: CollatorSelection Candidates (r:1 w:1)
106	/// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(4802), added: 5297,
107	/// mode: MaxEncodedLen) Storage: System Account (r:1 w:1)
108	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode:
109	/// MaxEncodedLen) The range of component `b` is `[1, 19]`.
110	/// The range of component `c` is `[1, 99]`.
111	fn add_invulnerable(b: u32, c: u32) -> Weight {
112		// Proof Size summary in bytes:
113		//  Measured:  `757 + b * (32 ±0) + c * (53 ±0)`
114		//  Estimated: `6287 + b * (37 ±0) + c * (53 ±0)`
115		// Minimum execution time: 52_720_000 picoseconds.
116		Weight::from_parts(56_102_459, 0)
117			.saturating_add(Weight::from_parts(0, 6287))
118			// Standard Error: 12_957
119			.saturating_add(Weight::from_parts(26_422, 0).saturating_mul(b.into()))
120			// Standard Error: 2_456
121			.saturating_add(Weight::from_parts(128_528, 0).saturating_mul(c.into()))
122			.saturating_add(T::DbWeight::get().reads(4))
123			.saturating_add(T::DbWeight::get().writes(3))
124			.saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into()))
125			.saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into()))
126	}
127	/// Storage: CollatorSelection Invulnerables (r:1 w:1)
128	/// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added:
129	/// 3697, mode: MaxEncodedLen) The range of component `b` is `[1, 100]`.
130	fn remove_invulnerable(b: u32) -> Weight {
131		// Proof Size summary in bytes:
132		//  Measured:  `119 + b * (32 ±0)`
133		//  Estimated: `4687`
134		// Minimum execution time: 183_054_000 picoseconds.
135		Weight::from_parts(197_205_427, 0)
136			.saturating_add(Weight::from_parts(0, 4687))
137			// Standard Error: 13_533
138			.saturating_add(Weight::from_parts(376_231, 0).saturating_mul(b.into()))
139			.saturating_add(T::DbWeight::get().reads(1))
140			.saturating_add(T::DbWeight::get().writes(1))
141	}
142}
143
144// For backwards compatibility and tests
145impl WeightInfo for () {
146	fn set_invulnerables(b: u32) -> Weight {
147		Weight::from_parts(18_563_000_u64, 0)
148			// Standard Error: 0
149			.saturating_add(Weight::from_parts(68_000_u64, 0).saturating_mul(b as u64))
150			.saturating_add(RocksDbWeight::get().writes(1_u64))
151	}
152	fn set_desired_candidates() -> Weight {
153		Weight::from_parts(16_363_000_u64, 0).saturating_add(RocksDbWeight::get().writes(1_u64))
154	}
155	fn set_candidacy_bond(_c: u32, _k: u32) -> Weight {
156		Weight::from_parts(16_840_000_u64, 0).saturating_add(RocksDbWeight::get().writes(1_u64))
157	}
158	fn register_as_candidate(c: u32) -> Weight {
159		Weight::from_parts(71_196_000_u64, 0)
160			// Standard Error: 0
161			.saturating_add(Weight::from_parts(198_000_u64, 0).saturating_mul(c as u64))
162			.saturating_add(RocksDbWeight::get().reads(4_u64))
163			.saturating_add(RocksDbWeight::get().writes(2_u64))
164	}
165	fn leave_intent(c: u32) -> Weight {
166		Weight::from_parts(55_336_000_u64, 0)
167			// Standard Error: 0
168			.saturating_add(Weight::from_parts(151_000_u64, 0).saturating_mul(c as u64))
169			.saturating_add(RocksDbWeight::get().reads(1_u64))
170			.saturating_add(RocksDbWeight::get().writes(2_u64))
171	}
172	fn note_author() -> Weight {
173		Weight::from_parts(71_461_000_u64, 0)
174			.saturating_add(RocksDbWeight::get().reads(3_u64))
175			.saturating_add(RocksDbWeight::get().writes(4_u64))
176	}
177	fn update_bond(c: u32) -> Weight {
178		Weight::from_parts(55_336_000_u64, 0)
179			// Standard Error: 0
180			.saturating_add(Weight::from_parts(151_000_u64, 0).saturating_mul(c as u64))
181			.saturating_add(RocksDbWeight::get().reads(3_u64))
182			.saturating_add(RocksDbWeight::get().writes(4_u64))
183	}
184	fn take_candidate_slot(c: u32) -> Weight {
185		Weight::from_parts(71_196_000_u64, 0)
186			// Standard Error: 0
187			.saturating_add(Weight::from_parts(198_000_u64, 0).saturating_mul(c as u64))
188			.saturating_add(RocksDbWeight::get().reads(3_u64))
189			.saturating_add(RocksDbWeight::get().writes(4_u64))
190	}
191	fn new_session(r: u32, c: u32) -> Weight {
192		Weight::from_parts(0_u64, 0)
193			// Standard Error: 1_010_000
194			.saturating_add(Weight::from_parts(109_961_000_u64, 0).saturating_mul(r as u64))
195			// Standard Error: 1_010_000
196			.saturating_add(Weight::from_parts(151_952_000_u64, 0).saturating_mul(c as u64))
197			.saturating_add(RocksDbWeight::get().reads(1_u64.saturating_mul(r as u64)))
198			.saturating_add(RocksDbWeight::get().reads(2_u64.saturating_mul(c as u64)))
199			.saturating_add(RocksDbWeight::get().writes(2_u64.saturating_mul(r as u64)))
200			.saturating_add(RocksDbWeight::get().writes(2_u64.saturating_mul(c as u64)))
201	}
202	/// Storage: Session NextKeys (r:1 w:0)
203	/// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured)
204	/// Storage: CollatorSelection Invulnerables (r:1 w:1)
205	/// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(641), added:
206	/// 1136, mode: MaxEncodedLen) Storage: CollatorSelection Candidates (r:1 w:1)
207	/// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(4802), added: 5297,
208	/// mode: MaxEncodedLen) Storage: System Account (r:1 w:1)
209	/// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode:
210	/// MaxEncodedLen) The range of component `b` is `[1, 19]`.
211	/// The range of component `c` is `[1, 99]`.
212	fn add_invulnerable(b: u32, c: u32) -> Weight {
213		// Proof Size summary in bytes:
214		//  Measured:  `757 + b * (32 ±0) + c * (53 ±0)`
215		//  Estimated: `6287 + b * (37 ±0) + c * (53 ±0)`
216		// Minimum execution time: 52_720_000 picoseconds.
217		Weight::from_parts(56_102_459, 0)
218			.saturating_add(Weight::from_parts(0, 6287))
219			// Standard Error: 12_957
220			.saturating_add(Weight::from_parts(26_422, 0).saturating_mul(b.into()))
221			// Standard Error: 2_456
222			.saturating_add(Weight::from_parts(128_528, 0).saturating_mul(c.into()))
223			.saturating_add(RocksDbWeight::get().reads(4))
224			.saturating_add(RocksDbWeight::get().writes(3))
225			.saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into()))
226			.saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into()))
227	}
228	/// Storage: CollatorSelection Invulnerables (r:1 w:1)
229	/// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added:
230	/// 3697, mode: MaxEncodedLen) The range of component `b` is `[1, 100]`.
231	fn remove_invulnerable(b: u32) -> Weight {
232		// Proof Size summary in bytes:
233		//  Measured:  `119 + b * (32 ±0)`
234		//  Estimated: `4687`
235		// Minimum execution time: 183_054_000 picoseconds.
236		Weight::from_parts(197_205_427, 0)
237			.saturating_add(Weight::from_parts(0, 4687))
238			// Standard Error: 13_533
239			.saturating_add(Weight::from_parts(376_231, 0).saturating_mul(b.into()))
240			.saturating_add(RocksDbWeight::get().reads(1))
241			.saturating_add(RocksDbWeight::get().writes(1))
242	}
243}