Compare commits
No commits in common. "562efe57445498fe022e52db657e596c2a3919d3" and "cc300fefb01a00c5c5ce35fd78cd281835c7e940" have entirely different histories.
562efe5744
...
cc300fefb0
5
Cargo.lock
generated
5
Cargo.lock
generated
@ -3838,7 +3838,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ghost-slow-clap"
|
name = "ghost-slow-clap"
|
||||||
version = "0.4.25"
|
version = "0.4.24"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"frame-benchmarking",
|
"frame-benchmarking",
|
||||||
"frame-support",
|
"frame-support",
|
||||||
@ -3890,11 +3890,10 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ghost-traits"
|
name = "ghost-traits"
|
||||||
version = "0.3.32"
|
version = "0.3.31"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"frame-support",
|
"frame-support",
|
||||||
"sp-runtime 31.0.1",
|
"sp-runtime 31.0.1",
|
||||||
"sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.12.0)",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ghost-slow-clap"
|
name = "ghost-slow-clap"
|
||||||
version = "0.4.26"
|
version = "0.4.24"
|
||||||
description = "Applause protocol for the EVM bridge"
|
description = "Applause protocol for the EVM bridge"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
|
|||||||
@ -111,8 +111,8 @@ benchmarks! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try_offend_validators {
|
try_offend_validators {
|
||||||
let n in 1 .. T::MaxAuthorities::get();
|
let n in 4 .. T::MaxAuthorities::get();
|
||||||
let d in 0 .. T::MaxAuthorities::get();
|
let d in 0 .. T::MaxAuthorities::get().saturating_div(3);
|
||||||
|
|
||||||
let session_index = T::ValidatorSet::session_index();
|
let session_index = T::ValidatorSet::session_index();
|
||||||
let mut validators_vec = Vec::new();
|
let mut validators_vec = Vec::new();
|
||||||
|
|||||||
@ -1441,53 +1441,41 @@ impl<T: Config> Pallet<T> {
|
|||||||
disabled_bitmap: BitMap,
|
disabled_bitmap: BitMap,
|
||||||
offence_type: OffenceType,
|
offence_type: OffenceType,
|
||||||
) -> Weight {
|
) -> Weight {
|
||||||
let mut weight = T::DbWeight::get().reads_writes(1, 1);
|
let validator_set_count = validators.len() as u32;
|
||||||
let validator_set_count = validators.len();
|
|
||||||
|
|
||||||
let mut offenders = Vec::with_capacity(offence_bitmap.count_ones() as usize);
|
let offenders = validators
|
||||||
let mut reporter_indexes = Vec::with_capacity(validator_set_count);
|
.into_iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter_map(|(index, id)| {
|
||||||
|
(offence_bitmap.exists(&(index as AuthIndex))).then(|| {
|
||||||
|
<T::ValidatorSet as ValidatorSetWithIdentification<T::AccountId>>::IdentificationOf::convert(
|
||||||
|
id.clone(),
|
||||||
|
).map(|full_id| (id.clone(), full_id))
|
||||||
|
})
|
||||||
|
.flatten()
|
||||||
|
})
|
||||||
|
.collect::<Vec<IdentificationTuple<T>>>();
|
||||||
|
|
||||||
let disabled_or_offence_bitmap = disabled_bitmap.bitor(offence_bitmap.clone());
|
let disabled_or_offence_bitmap = disabled_bitmap.bitor(offence_bitmap);
|
||||||
let validator_set_count = validator_set_count as u32;
|
|
||||||
|
|
||||||
for (index, id) in validators.iter().enumerate() {
|
|
||||||
let authority_index = index as AuthIndex;
|
|
||||||
|
|
||||||
if offence_bitmap.exists(&authority_index) {
|
|
||||||
weight.saturating_accrue(T::DbWeight::get().reads(1));
|
|
||||||
if let Some(full_id) = <T::ValidatorSet as ValidatorSetWithIdentification<
|
|
||||||
T::AccountId,
|
|
||||||
>>::IdentificationOf::convert(id.clone())
|
|
||||||
{
|
|
||||||
offenders.push((id.clone(), full_id));
|
|
||||||
}
|
|
||||||
} else if !disabled_or_offence_bitmap.exists(&authority_index) {
|
|
||||||
reporter_indexes.push(index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let offenders_len = offenders.len() as u32;
|
|
||||||
let not_enough_validators_left = validator_set_count
|
let not_enough_validators_left = validator_set_count
|
||||||
.saturating_sub(disabled_or_offence_bitmap.count_ones())
|
.saturating_sub(disabled_or_offence_bitmap.count_ones())
|
||||||
.lt(&T::MinAuthoritiesNumber::get());
|
.lt(&T::MinAuthoritiesNumber::get());
|
||||||
|
|
||||||
if not_enough_validators_left && offenders_len > 0 {
|
if not_enough_validators_left && offenders.len() > 0 {
|
||||||
Self::deposit_event(Event::<T>::BlackSwan);
|
Self::deposit_event(Event::<T>::BlackSwan);
|
||||||
return weight;
|
return T::DbWeight::get().writes(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let offenders_len = offenders.len() as u32;
|
||||||
if offenders_len == 0 {
|
if offenders_len == 0 {
|
||||||
let equilibrium_event = match offence_type {
|
let equilibrium_event = match offence_type {
|
||||||
OffenceType::CommitmentOffence => Event::<T>::AuthoritiesCommitmentEquilibrium,
|
OffenceType::CommitmentOffence => Event::<T>::AuthoritiesCommitmentEquilibrium,
|
||||||
OffenceType::ThrottlingOffence(_) => Event::<T>::AuthoritiesApplauseEquilibrium,
|
OffenceType::ThrottlingOffence(_) => Event::<T>::AuthoritiesApplauseEquilibrium,
|
||||||
};
|
};
|
||||||
Self::deposit_event(equilibrium_event);
|
Self::deposit_event(equilibrium_event);
|
||||||
return weight;
|
return T::DbWeight::get().writes(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
weight.saturating_accrue(T::DbWeight::get().reads(1));
|
|
||||||
let reporters = T::ExposureListener::get_accounts_by_indexes(reporter_indexes.into_iter());
|
|
||||||
|
|
||||||
let offence_event = match offence_type {
|
let offence_event = match offence_type {
|
||||||
OffenceType::CommitmentOffence => Event::<T>::SomeAuthoritiesDelayed {
|
OffenceType::CommitmentOffence => Event::<T>::SomeAuthoritiesDelayed {
|
||||||
delayed: offenders.clone(),
|
delayed: offenders.clone(),
|
||||||
@ -1506,13 +1494,21 @@ impl<T: Config> Pallet<T> {
|
|||||||
offence_type,
|
offence_type,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let reporters = validators
|
||||||
|
.into_iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter_map(|(index, _)| {
|
||||||
|
(!disabled_or_offence_bitmap.exists(&(index as AuthIndex)))
|
||||||
|
.then(|| T::ExposureListener::get_account_by_index(index))
|
||||||
|
.flatten()
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
if let Err(e) = T::ReportUnresponsiveness::report_offence(reporters, offence) {
|
if let Err(e) = T::ReportUnresponsiveness::report_offence(reporters, offence) {
|
||||||
sp_runtime::print(e);
|
sp_runtime::print(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
let extra_weight = T::WeightInfo::try_offend_validators(validator_set_count, offenders_len);
|
T::WeightInfo::try_offend_validators(offenders_len)
|
||||||
|
|
||||||
weight.saturating_add(extra_weight)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -177,15 +177,6 @@ impl ExposureListener<Balance, u64> for TestExposureListener
|
|||||||
where
|
where
|
||||||
Balance: AtLeast32BitUnsigned + From<u64>,
|
Balance: AtLeast32BitUnsigned + From<u64>,
|
||||||
{
|
{
|
||||||
fn get_accounts_by_indexes(
|
|
||||||
indexes_iterator: impl Iterator<Item = usize>,
|
|
||||||
) -> sp_std::prelude::Vec<u64> {
|
|
||||||
let all_validators = FixedValidators::get();
|
|
||||||
indexes_iterator
|
|
||||||
.filter_map(|i| all_validators.get(i).copied())
|
|
||||||
.collect()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_account_by_index(index: usize) -> Option<u64> {
|
fn get_account_by_index(index: usize) -> Option<u64> {
|
||||||
FixedValidators::get().get(index).copied()
|
FixedValidators::get().get(index).copied()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,7 +49,7 @@ use core::marker::PhantomData;
|
|||||||
pub trait WeightInfo {
|
pub trait WeightInfo {
|
||||||
fn slow_clap() -> Weight;
|
fn slow_clap() -> Weight;
|
||||||
fn commit_block()-> Weight;
|
fn commit_block()-> Weight;
|
||||||
fn try_offend_validators(validators_len: u32, offenders_len: u32) -> Weight;
|
fn try_offend_validators(offenders_len: u32) -> Weight;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WeightInfo for () {
|
impl WeightInfo for () {
|
||||||
@ -105,7 +105,7 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().writes(1))
|
.saturating_add(RocksDbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_offend_validators(_validators_len: u32, _offenders_len: u32) -> Weight {
|
fn try_offend_validators(_offenders_len: u32) -> Weight {
|
||||||
Default::default()
|
Default::default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ghost-traits"
|
name = "ghost-traits"
|
||||||
version = "0.3.32"
|
version = "0.3.31"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
@ -10,12 +10,10 @@ repository.workspace = true
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
frame-support = { workspace = true }
|
frame-support = { workspace = true }
|
||||||
sp-runtime = { workspace = true }
|
sp-runtime = { workspace = true }
|
||||||
sp-std = { workspace = true }
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
std = [
|
std = [
|
||||||
"frame-support/std",
|
"frame-support/std",
|
||||||
"sp-runtime/std",
|
"sp-runtime/std",
|
||||||
"sp-std/std",
|
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
use sp_runtime::traits::AtLeast32BitUnsigned;
|
use sp_runtime::traits::AtLeast32BitUnsigned;
|
||||||
|
|
||||||
pub trait ExposureListener<Balance: AtLeast32BitUnsigned, AccountId> {
|
pub trait ExposureListener<Balance: AtLeast32BitUnsigned, AccountId> {
|
||||||
fn get_accounts_by_indexes(
|
|
||||||
indexes: impl Iterator<Item = usize>,
|
|
||||||
) -> sp_std::prelude::Vec<AccountId>;
|
|
||||||
fn get_account_by_index(index: usize) -> Option<AccountId>;
|
fn get_account_by_index(index: usize) -> Option<AccountId>;
|
||||||
fn get_total_exposure() -> Balance;
|
fn get_total_exposure() -> Balance;
|
||||||
fn get_validator_exposure(index: &AccountId) -> Balance;
|
fn get_validator_exposure(index: &AccountId) -> Balance;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "casper-runtime"
|
name = "casper-runtime"
|
||||||
version = "3.5.39"
|
version = "3.5.38"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
description = "Runtime of the Casper Network"
|
description = "Runtime of the Casper Network"
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|||||||
@ -86,21 +86,6 @@ where
|
|||||||
u128: From<T::CurrencyBalance>,
|
u128: From<T::CurrencyBalance>,
|
||||||
AccountIdOf<T>: From<<T as pallet_session::Config>::ValidatorId>,
|
AccountIdOf<T>: From<<T as pallet_session::Config>::ValidatorId>,
|
||||||
{
|
{
|
||||||
fn get_accounts_by_indexes(
|
|
||||||
indexes_iterator: impl Iterator<Item = usize>,
|
|
||||||
) -> sp_std::prelude::Vec<AccountIdOf<T>> {
|
|
||||||
let all_validators = pallet_session::Pallet::<T>::validators();
|
|
||||||
indexes_iterator
|
|
||||||
.filter_map(|index| all_validators
|
|
||||||
.get(index)
|
|
||||||
.map(|validator| {
|
|
||||||
let account_id: AccountIdOf<T> = validator.clone().into();
|
|
||||||
account_id
|
|
||||||
})
|
|
||||||
)
|
|
||||||
.collect()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_account_by_index(index: usize) -> Option<AccountIdOf<T>> {
|
fn get_account_by_index(index: usize) -> Option<AccountIdOf<T>> {
|
||||||
pallet_session::Pallet::<T>::validators()
|
pallet_session::Pallet::<T>::validators()
|
||||||
.get(index)
|
.get(index)
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
//! Autogenerated weights for `ghost_networks`
|
//! Autogenerated weights for `ghost_networks`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
|
||||||
//! DATE: 2026-02-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2025-11-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz`
|
//! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz`
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024
|
||||||
@ -30,6 +30,7 @@
|
|||||||
// --repeat=20
|
// --repeat=20
|
||||||
// --pallet=ghost_networks
|
// --pallet=ghost_networks
|
||||||
// --extrinsic=*
|
// --extrinsic=*
|
||||||
|
// --wasm-execution=compiled
|
||||||
// --heap-pages=4096
|
// --heap-pages=4096
|
||||||
// --header=./file_header.txt
|
// --header=./file_header.txt
|
||||||
// --output=./runtime/casper/src/weights/ghost_networks.rs
|
// --output=./runtime/casper/src/weights/ghost_networks.rs
|
||||||
@ -47,35 +48,35 @@ pub struct WeightInfo<T>(PhantomData<T>);
|
|||||||
impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostNetworks::NetworkIndexes` (r:1 w:1)
|
|
||||||
/// Proof: `GhostNetworks::NetworkIndexes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// The range of component `i` is `[1, 20]`.
|
/// The range of component `i` is `[1, 20]`.
|
||||||
/// The range of component `j` is `[1, 150]`.
|
/// The range of component `j` is `[1, 150]`.
|
||||||
/// The range of component `k` is `[1, 20]`.
|
/// The range of component `k` is `[1, 20]`.
|
||||||
fn register_network(_i: u32, j: u32, k: u32, ) -> Weight {
|
fn register_network(i: u32, j: u32, k: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `109`
|
// Measured: `109`
|
||||||
// Estimated: `3574`
|
// Estimated: `3574`
|
||||||
// Minimum execution time: 48_419_000 picoseconds.
|
// Minimum execution time: 47_308_000 picoseconds.
|
||||||
Weight::from_parts(35_655_823, 0)
|
Weight::from_parts(32_768_615, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3574))
|
.saturating_add(Weight::from_parts(0, 3574))
|
||||||
// Standard Error: 1_212
|
// Standard Error: 5_701
|
||||||
.saturating_add(Weight::from_parts(96_762, 0).saturating_mul(j.into()))
|
.saturating_add(Weight::from_parts(31_258, 0).saturating_mul(i.into()))
|
||||||
// Standard Error: 9_235
|
// Standard Error: 748
|
||||||
.saturating_add(Weight::from_parts(1_460_410, 0).saturating_mul(k.into()))
|
.saturating_add(Weight::from_parts(102_765, 0).saturating_mul(j.into()))
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
// Standard Error: 5_701
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(Weight::from_parts(1_500_633, 0).saturating_mul(k.into()))
|
||||||
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// The range of component `n` is `[1, 20]`.
|
/// The range of component `n` is `[1, 20]`.
|
||||||
fn update_network_name(_n: u32, ) -> Weight {
|
fn update_network_name(_n: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_422_000 picoseconds.
|
// Minimum execution time: 51_079_000 picoseconds.
|
||||||
Weight::from_parts(49_987_541, 0)
|
Weight::from_parts(52_557_946, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -84,13 +85,13 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// The range of component `n` is `[1, 150]`.
|
/// The range of component `n` is `[1, 150]`.
|
||||||
fn update_network_endpoint(n: u32, ) -> Weight {
|
fn update_network_endpoint(n: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_651_000 picoseconds.
|
// Minimum execution time: 51_709_000 picoseconds.
|
||||||
Weight::from_parts(50_776_912, 0)
|
Weight::from_parts(53_451_989, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
// Standard Error: 1_062
|
// Standard Error: 605
|
||||||
.saturating_add(Weight::from_parts(838, 0).saturating_mul(n.into()))
|
.saturating_add(Weight::from_parts(6_984, 0).saturating_mul(n.into()))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -98,11 +99,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_finality_delay() -> Weight {
|
fn update_network_finality_delay() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_080_000 picoseconds.
|
// Minimum execution time: 50_475_000 picoseconds.
|
||||||
Weight::from_parts(51_781_000, 0)
|
Weight::from_parts(51_344_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -110,11 +111,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_rate_limit_delay() -> Weight {
|
fn update_network_rate_limit_delay() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 47_950_000 picoseconds.
|
// Minimum execution time: 50_467_000 picoseconds.
|
||||||
Weight::from_parts(48_925_000, 0)
|
Weight::from_parts(51_264_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -122,11 +123,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_block_distance() -> Weight {
|
fn update_network_block_distance() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_324_000 picoseconds.
|
// Minimum execution time: 50_473_000 picoseconds.
|
||||||
Weight::from_parts(50_801_000, 0)
|
Weight::from_parts(51_107_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -134,11 +135,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_type() -> Weight {
|
fn update_network_type() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 46_962_000 picoseconds.
|
// Minimum execution time: 49_597_000 picoseconds.
|
||||||
Weight::from_parts(47_729_000, 0)
|
Weight::from_parts(50_283_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -146,11 +147,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_gatekeeper() -> Weight {
|
fn update_network_gatekeeper() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_728_000 picoseconds.
|
// Minimum execution time: 51_083_000 picoseconds.
|
||||||
Weight::from_parts(53_054_000, 0)
|
Weight::from_parts(52_464_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -158,11 +159,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_network_topic_name() -> Weight {
|
fn update_network_topic_name() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_632_000 picoseconds.
|
// Minimum execution time: 51_270_000 picoseconds.
|
||||||
Weight::from_parts(49_954_000, 0)
|
Weight::from_parts(52_099_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -170,11 +171,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_incoming_network_fee() -> Weight {
|
fn update_incoming_network_fee() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 47_660_000 picoseconds.
|
// Minimum execution time: 50_289_000 picoseconds.
|
||||||
Weight::from_parts(53_763_000, 0)
|
Weight::from_parts(50_924_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -182,11 +183,11 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_outgoing_network_fee() -> Weight {
|
fn update_outgoing_network_fee() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 48_164_000 picoseconds.
|
// Minimum execution time: 49_880_000 picoseconds.
|
||||||
Weight::from_parts(48_953_000, 0)
|
Weight::from_parts(51_277_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@ -194,26 +195,24 @@ impl<T: frame_system::Config> ghost_networks::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn update_avg_block_speed() -> Weight {
|
fn update_avg_block_speed() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 47_789_000 picoseconds.
|
// Minimum execution time: 50_612_000 picoseconds.
|
||||||
Weight::from_parts(52_131_000, 0)
|
Weight::from_parts(51_546_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: `GhostNetworks::NetworkIndexes` (r:1 w:1)
|
|
||||||
/// Proof: `GhostNetworks::NetworkIndexes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
/// Storage: `GhostNetworks::Networks` (r:1 w:1)
|
||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn remove_network() -> Weight {
|
fn remove_network() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `310`
|
||||||
// Estimated: `3804`
|
// Estimated: `3775`
|
||||||
// Minimum execution time: 49_720_000 picoseconds.
|
// Minimum execution time: 45_819_000 picoseconds.
|
||||||
Weight::from_parts(50_526_000, 0)
|
Weight::from_parts(46_590_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3775))
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
//! Autogenerated weights for `ghost_slow_clap`
|
//! Autogenerated weights for `ghost_slow_clap`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
|
||||||
//! DATE: 2026-02-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2025-11-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz`
|
//! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz`
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024
|
||||||
@ -48,8 +48,6 @@ pub struct WeightInfo<T>(PhantomData<T>);
|
|||||||
impl<T: frame_system::Config> ghost_slow_clap::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> ghost_slow_clap::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: `GhostNetworks::Networks` (r:1 w:0)
|
/// Storage: `GhostNetworks::Networks` (r:1 w:0)
|
||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostSlowClaps::LatestExecutedBlock` (r:1 w:1)
|
|
||||||
/// Proof: `GhostSlowClaps::LatestExecutedBlock` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `GhostSlowClaps::ApplauseDetails` (r:1 w:1)
|
/// Storage: `GhostSlowClaps::ApplauseDetails` (r:1 w:1)
|
||||||
/// Proof: `GhostSlowClaps::ApplauseDetails` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostSlowClaps::ApplauseDetails` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostSlowClaps::Authorities` (r:1 w:0)
|
/// Storage: `GhostSlowClaps::Authorities` (r:1 w:0)
|
||||||
@ -64,6 +62,10 @@ impl<T: frame_system::Config> ghost_slow_clap::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
/// Proof: `Staking::CurrentEra` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
/// Storage: `Staking::ErasStakersOverview` (r:1 w:0)
|
/// Storage: `Staking::ErasStakersOverview` (r:1 w:0)
|
||||||
/// Proof: `Staking::ErasStakersOverview` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
|
/// Proof: `Staking::ErasStakersOverview` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `GhostSlowClaps::LatestExecutedBlock` (r:1 w:1)
|
||||||
|
/// Proof: `GhostSlowClaps::LatestExecutedBlock` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
|
/// Storage: `GhostNetworks::NullifyNeeded` (r:1 w:0)
|
||||||
|
/// Proof: `GhostNetworks::NullifyNeeded` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostNetworks::GatekeeperAmount` (r:1 w:1)
|
/// Storage: `GhostNetworks::GatekeeperAmount` (r:1 w:1)
|
||||||
/// Proof: `GhostNetworks::GatekeeperAmount` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::GatekeeperAmount` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostNetworks::BridgedImbalance` (r:1 w:1)
|
/// Storage: `GhostNetworks::BridgedImbalance` (r:1 w:1)
|
||||||
@ -74,70 +76,36 @@ impl<T: frame_system::Config> ghost_slow_clap::WeightInfo for WeightInfo<T> {
|
|||||||
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
fn slow_clap() -> Weight {
|
fn slow_clap() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `1417`
|
// Measured: `1388`
|
||||||
// Estimated: `4882`
|
// Estimated: `4853`
|
||||||
// Minimum execution time: 243_099_000 picoseconds.
|
// Minimum execution time: 261_978_000 picoseconds.
|
||||||
Weight::from_parts(247_253_000, 0)
|
Weight::from_parts(266_289_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 4882))
|
.saturating_add(Weight::from_parts(0, 4853))
|
||||||
.saturating_add(T::DbWeight::get().reads(13))
|
.saturating_add(T::DbWeight::get().reads(14))
|
||||||
.saturating_add(T::DbWeight::get().writes(6))
|
.saturating_add(T::DbWeight::get().writes(6))
|
||||||
}
|
}
|
||||||
/// Storage: `Session::CurrentIndex` (r:1 w:0)
|
|
||||||
/// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `GhostSlowClaps::LatestExecutedBlock` (r:1 w:0)
|
|
||||||
/// Proof: `GhostSlowClaps::LatestExecutedBlock` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `GhostNetworks::Networks` (r:1 w:0)
|
/// Storage: `GhostNetworks::Networks` (r:1 w:0)
|
||||||
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `GhostSlowClaps::BlockCommitments` (r:1 w:1)
|
/// Storage: `GhostSlowClaps::BlockCommitments` (r:1 w:1)
|
||||||
/// Proof: `GhostSlowClaps::BlockCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `GhostSlowClaps::BlockCommitments` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
|
/// Storage: `Session::CurrentIndex` (r:1 w:0)
|
||||||
|
/// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
|
/// Storage: `GhostSlowClaps::Validators` (r:1 w:0)
|
||||||
|
/// Proof: `GhostSlowClaps::Validators` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
|
/// Storage: `GhostSlowClaps::DisabledAuthorityIndexes` (r:1 w:0)
|
||||||
|
/// Proof: `GhostSlowClaps::DisabledAuthorityIndexes` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn commit_block() -> Weight {
|
fn commit_block() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `701`
|
// Measured: `859`
|
||||||
// Estimated: `4166`
|
// Estimated: `4324`
|
||||||
// Minimum execution time: 74_725_000 picoseconds.
|
// Minimum execution time: 108_966_000 picoseconds.
|
||||||
Weight::from_parts(76_067_000, 0)
|
Weight::from_parts(110_454_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 4166))
|
.saturating_add(Weight::from_parts(0, 4324))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: `Staking::ActiveEra` (r:1 w:0)
|
|
||||||
/// Proof: `Staking::ActiveEra` (`max_values`: Some(1), `max_size`: Some(13), added: 508, mode: `MaxEncodedLen`)
|
fn try_offend_validators(_offenders_len: u32) -> Weight {
|
||||||
/// Storage: `Staking::ErasStakersOverview` (r:100000 w:0)
|
Default::default()
|
||||||
/// Proof: `Staking::ErasStakersOverview` (`max_values`: None, `max_size`: Some(92), added: 2567, mode: `MaxEncodedLen`)
|
}
|
||||||
/// Storage: `Staking::ErasStakers` (r:100000 w:0)
|
|
||||||
/// Proof: `Staking::ErasStakers` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Session::Validators` (r:1 w:0)
|
|
||||||
/// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Offences::ConcurrentReportsIndex` (r:1 w:1)
|
|
||||||
/// Proof: `Offences::ConcurrentReportsIndex` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Offences::Reports` (r:97959 w:97959)
|
|
||||||
/// Proof: `Offences::Reports` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Staking::SlashRewardFraction` (r:1 w:0)
|
|
||||||
/// Proof: `Staking::SlashRewardFraction` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `Staking::ErasStartSessionIndex` (r:1 w:0)
|
|
||||||
/// Proof: `Staking::ErasStartSessionIndex` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `Staking::Invulnerables` (r:1 w:0)
|
|
||||||
/// Proof: `Staking::Invulnerables` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Staking::SlashingSpans` (r:97959 w:97959)
|
|
||||||
/// Proof: `Staking::SlashingSpans` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `Staking::DisabledValidators` (r:1 w:1)
|
|
||||||
/// Proof: `Staking::DisabledValidators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// The range of component `n` is `[1, 100000]`.
|
|
||||||
/// The range of component `d` is `[0, 100000]`.
|
|
||||||
fn try_offend_validators(n: u32, d: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `674`
|
|
||||||
// Estimated: `1886 + d * (2567 ±0)`
|
|
||||||
// Minimum execution time: 13_192_257_000 picoseconds.
|
|
||||||
Weight::from_parts(13_208_069_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 1886))
|
|
||||||
// Standard Error: 732_167
|
|
||||||
.saturating_add(Weight::from_parts(19_211_621, 0).saturating_mul(n.into()))
|
|
||||||
// Standard Error: 732_168
|
|
||||||
.saturating_add(Weight::from_parts(9_755_300, 0).saturating_mul(d.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
|
|
||||||
.saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(d.into())))
|
|
||||||
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
|
|
||||||
.saturating_add(Weight::from_parts(0, 2567).saturating_mul(d.into()))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user