diff --git a/Cargo.lock b/Cargo.lock index 2a0f8fe..24fe398 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1186,7 +1186,7 @@ dependencies = [ [[package]] name = "casper-runtime" -version = "3.5.38" +version = "3.5.40" dependencies = [ "casper-runtime-constants", "frame-benchmarking", @@ -3650,7 +3650,7 @@ dependencies = [ [[package]] name = "ghost-networks" -version = "0.1.25" +version = "0.1.26" dependencies = [ "frame-benchmarking", "frame-support", @@ -3838,7 +3838,7 @@ dependencies = [ [[package]] name = "ghost-slow-clap" -version = "0.4.25" +version = "0.4.27" dependencies = [ "frame-benchmarking", "frame-support", diff --git a/pallets/networks/src/weights.rs b/pallets/networks/src/weights.rs index da18dd7..85a89b5 100644 --- a/pallets/networks/src/weights.rs +++ b/pallets/networks/src/weights.rs @@ -82,8 +82,8 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(96_762, 0).saturating_mul(j.into())) // Standard Error: 9_235 .saturating_add(Weight::from_parts(1_460_410, 0).saturating_mul(k.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(RocksDbWeight::get().reads(2)) + .saturating_add(RocksDbWeight::get().writes(2)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -95,8 +95,8 @@ impl WeightInfo for () { // Minimum execution time: 48_422_000 picoseconds. Weight::from_parts(49_987_541, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -110,8 +110,8 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(0, 3804)) // Standard Error: 1_062 .saturating_add(Weight::from_parts(838, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -122,8 +122,8 @@ impl WeightInfo for () { // Minimum execution time: 48_080_000 picoseconds. Weight::from_parts(51_781_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -134,8 +134,8 @@ impl WeightInfo for () { // Minimum execution time: 47_950_000 picoseconds. Weight::from_parts(48_925_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -146,8 +146,8 @@ impl WeightInfo for () { // Minimum execution time: 48_324_000 picoseconds. Weight::from_parts(50_801_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -158,8 +158,8 @@ impl WeightInfo for () { // Minimum execution time: 46_962_000 picoseconds. Weight::from_parts(47_729_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -170,8 +170,8 @@ impl WeightInfo for () { // Minimum execution time: 48_728_000 picoseconds. Weight::from_parts(53_054_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -182,8 +182,8 @@ impl WeightInfo for () { // Minimum execution time: 48_632_000 picoseconds. Weight::from_parts(49_954_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -194,8 +194,8 @@ impl WeightInfo for () { // Minimum execution time: 47_660_000 picoseconds. Weight::from_parts(53_763_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -206,8 +206,8 @@ impl WeightInfo for () { // Minimum execution time: 48_164_000 picoseconds. Weight::from_parts(48_953_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::Networks` (r:1 w:1) /// Proof: `GhostNetworks::Networks` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -218,8 +218,8 @@ impl WeightInfo for () { // Minimum execution time: 47_789_000 picoseconds. Weight::from_parts(52_131_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(1)) + .saturating_add(RocksDbWeight::get().writes(1)) } /// Storage: `GhostNetworks::NetworkIndexes` (r:1 w:1) /// Proof: `GhostNetworks::NetworkIndexes` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -232,7 +232,7 @@ impl WeightInfo for () { // Minimum execution time: 49_720_000 picoseconds. Weight::from_parts(50_526_000, 0) .saturating_add(Weight::from_parts(0, 3804)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(RocksDbWeight::get().reads(2)) + .saturating_add(RocksDbWeight::get().writes(2)) } } diff --git a/pallets/slow-clap/src/weights.rs b/pallets/slow-clap/src/weights.rs index c58d0bf..d5b8581 100644 --- a/pallets/slow-clap/src/weights.rs +++ b/pallets/slow-clap/src/weights.rs @@ -86,8 +86,8 @@ impl WeightInfo for () { // Minimum execution time: 305_397_000 picoseconds. Weight::from_parts(310_207_000, 0) .saturating_add(Weight::from_parts(0, 4882)) - .saturating_add(T::DbWeight::get().reads(13)) - .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(RocksDbWeight::get().reads(13)) + .saturating_add(RocksDbWeight::get().writes(6)) } /// Storage: `Session::CurrentIndex` (r:1 w:0) /// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -104,8 +104,8 @@ impl WeightInfo for () { // Minimum execution time: 88_007_000 picoseconds. Weight::from_parts(89_662_000, 0) .saturating_add(Weight::from_parts(0, 4166)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(RocksDbWeight::get().reads(4)) + .saturating_add(RocksDbWeight::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`) @@ -142,9 +142,9 @@ impl WeightInfo for () { .saturating_add(Weight::from_parts(29_632_292, 0).saturating_mul(n.into())) // Standard Error: 1_146_441 .saturating_add(Weight::from_parts(14_654_685, 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(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(d.into()))) + .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(n.into()))) .saturating_add(Weight::from_parts(0, 2567).saturating_mul(d.into())) } } diff --git a/runtime/casper/Cargo.toml b/runtime/casper/Cargo.toml index 612a94f..55e0c96 100644 --- a/runtime/casper/Cargo.toml +++ b/runtime/casper/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "casper-runtime" -version = "3.5.39" +version = "3.5.40" build = "build.rs" description = "Runtime of the Casper Network" edition.workspace = true diff --git a/runtime/casper/src/impls.rs b/runtime/casper/src/impls.rs index 68b820e..8450e0e 100644 --- a/runtime/casper/src/impls.rs +++ b/runtime/casper/src/impls.rs @@ -91,16 +91,15 @@ where ) -> sp_std::prelude::Vec> { let all_validators = pallet_session::Pallet::::validators(); indexes_iterator - .filter_map(|index| all_validators - .get(index) - .map(|validator| { + .filter_map(|index| { + all_validators.get(index).map(|validator| { let account_id: AccountIdOf = validator.clone().into(); account_id }) - ) + }) .collect() } - + fn get_account_by_index(index: usize) -> Option> { pallet_session::Pallet::::validators() .get(index) diff --git a/runtime/casper/src/lib.rs b/runtime/casper/src/lib.rs index 60aa2ba..384edfc 100644 --- a/runtime/casper/src/lib.rs +++ b/runtime/casper/src/lib.rs @@ -25,9 +25,10 @@ use runtime_common::{ CurrencyToVote, SlowAdjustingFeeUpdate, }; +#[cfg(not(feature = "runtime-benchmarks"))] use frame_support::traits::tokens::pay::PayFromAccount; #[cfg(feature = "runtime-benchmarks")] -use runtime_common::benchmarking::BenchmarkTreasuryHelper; +use runtime_common::benchmarking::{BenchmarkTreasuryHelper, BenchmarkTreasuryPaymaster}; use codec::{Decode, Encode, MaxEncodedLen}; use ghost_slow_clap::sr25519::AuthorityId as SlowClapId; @@ -82,9 +83,10 @@ pub use impls::{AllianceProposalProvider, EqualOrGreatestRootCmp, StakingExposur // Governance configuration. pub mod cult; +#[cfg(not(feature = "runtime-benchmarks"))] +use cult::CultTreasurySpender; use cult::{ - pallet_cult_origins, CultCollectiveInstance, CultTreasurySpender, Degens, Geniuses, Ghosts, - Skeletons, Zombies, + pallet_cult_origins, CultCollectiveInstance, Degens, Geniuses, Ghosts, Skeletons, Zombies, }; pub const LOG_TARGET: &str = "runtime::casper"; @@ -170,7 +172,7 @@ impl frame_system::Config for Runtime { type SystemWeightInfo = weights::frame_system::WeightInfo; type SS58Prefix = SS58Prefix; type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; + type MaxConsumers = ConstU32<16>; type SingleBlockMigrations = (); type MultiBlockMigrator = (); type PreInherents = (); @@ -234,7 +236,7 @@ impl pallet_babe::Config for Runtime { type EpochChangeTrigger = pallet_babe::ExternalTrigger; type DisabledValidators = Session; - type WeightInfo = (); + type WeightInfo = weights::pallet_babe::WeightInfo; type MaxAuthorities = MaxAuthorities; type MaxNominators = MaxNominators; @@ -558,19 +560,30 @@ impl pallet_identity::Config for Runtime { parameter_types! { pub const ProposalBond: Permill = Permill::from_percent(5); - pub const ProposalBondMinimum: Balance = 10 * CSPR; - pub const ProposalBondMaximum: Balance = 50 * CSPR; - pub const SpendPeriod: BlockNumber = 24 * DAYS; pub const Burn: Permill = Permill::from_percent(0); pub const MaxBalance: Balance = Balance::MAX; pub const PayoutPeriod: BlockNumber = 30 * DAYS; pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry"); pub const DataDepositPerByte: Balance = 1 * STRH; - pub const MaxApprovals: u32 = 100; + pub const MaxApprovals: u32 = 1000; pub const MaxAuthorities: u32 = 100_000; } +#[cfg(not(feature = "runtime-benchmarks"))] +parameter_types! { + pub const ProposalBondMinimum: Balance = 10 * CSPR; + pub const ProposalBondMaximum: Balance = 50 * CSPR; + pub const SpendPeriod: BlockNumber = 6 * DAYS; +} + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub const ProposalBondMinimum: Balance = ExistentialDeposit::get() * 100; + pub const ProposalBondMaximum: Balance = ExistentialDeposit::get() * 500; + pub const SpendPeriod: BlockNumber = 1; +} + impl pallet_treasury::Config for Runtime { type PalletId = TreasuryPalletId; type Currency = Balances; @@ -585,30 +598,29 @@ impl pallet_treasury::Config for Runtime { type OnSlash = Treasury; type ProposalBond = ProposalBond; - #[cfg(not(feature = "runtime-benchmarks"))] type ProposalBondMinimum = ProposalBondMinimum; - #[cfg(feature = "runtime-benchmarks")] - type ProposalBondMinimum = ConstU128<{ ExistentialDeposit::get() * 100 }>; - - #[cfg(not(feature = "runtime-benchmarks"))] type ProposalBondMaximum = ProposalBondMaximum; - #[cfg(feature = "runtime-benchmarks")] - type ProposalBondMaximum = ConstU128<{ ExistentialDeposit::get() * 500 }>; - type SpendPeriod = SpendPeriod; + type Burn = Burn; type BurnDestination = (); type SpendFunds = Bounties; type MaxApprovals = MaxApprovals; - type WeightInfo = (); + type WeightInfo = weights::pallet_treasury::WeightInfo; + #[cfg(not(feature = "runtime-benchmarks"))] type SpendOrigin = EitherOf, CultTreasurySpender>; + #[cfg(feature = "runtime-benchmarks")] + type SpendOrigin = EnsureRootWithSuccess; type AssetKind = (); type Beneficiary = AccountId; type BeneficiaryLookup = IdentityLookup; + #[cfg(not(feature = "runtime-benchmarks"))] type Paymaster = PayFromAccount; + #[cfg(feature = "runtime-benchmarks")] + type Paymaster = BenchmarkTreasuryPaymaster; type BalanceConverter = UnityAssetBalanceConversion; type PayoutPeriod = PayoutPeriod; @@ -616,30 +628,43 @@ impl pallet_treasury::Config for Runtime { type BenchmarkHelper = BenchmarkTreasuryHelper; } +#[cfg(not(feature = "runtime-benchmarks"))] +parameter_types! { + pub const BountyValueMinimum: Balance = 1 * STRH; + pub const CuratorDepositMin: Balance = 10 * CSPR; +} + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub const BountyValueMinimum: Balance = ExistentialDeposit::get() * 10; + pub const CuratorDepositMin: Balance = ExistentialDeposit::get(); +} + parameter_types! { pub const BountyDepositBase: Balance = 10 * CSPR; pub const BountyDepositPayoutDelay: BlockNumber = DAYS; pub const BountyUpdatePeriod: BlockNumber = 2 * WEEKS; pub const MaximumReasonLength: u32 = 16_384; pub const CuratorDepositMultiplier: Permill = Permill::from_percent(50); - pub const CuratorDepositMin: Balance = 10 * CSPR; pub const CuratorDepositMax: Balance = 200 * CSPR; - pub const BountyValueMinimum: Balance = 10 * CSPR; } impl pallet_bounties::Config for Runtime { type RuntimeEvent = RuntimeEvent; + type BountyDepositBase = BountyDepositBase; + type CuratorDepositMin = CuratorDepositMin; + type DataDepositPerByte = DataDepositPerByte; + type BountyValueMinimum = BountyValueMinimum; + type BountyDepositPayoutDelay = BountyDepositPayoutDelay; type BountyUpdatePeriod = BountyUpdatePeriod; type CuratorDepositMultiplier = CuratorDepositMultiplier; - type CuratorDepositMin = CuratorDepositMin; type CuratorDepositMax = CuratorDepositMax; - type BountyValueMinimum = BountyValueMinimum; type ChildBountyManager = ChildBounties; - type DataDepositPerByte = DataDepositPerByte; type MaximumReasonLength = MaximumReasonLength; - type WeightInfo = (); + + type WeightInfo = weights::pallet_bounties::WeightInfo; } parameter_types! { @@ -651,7 +676,7 @@ impl pallet_child_bounties::Config for Runtime { type RuntimeEvent = RuntimeEvent; type MaxActiveChildBountyCount = MaxActiveChildBountyCount; type ChildBountyValueMinimum = ChildBountyValueMinimum; - type WeightInfo = (); + type WeightInfo = weights::pallet_child_bounties::WeightInfo; } impl pallet_offences::Config for Runtime { @@ -676,7 +701,7 @@ parameter_types! { impl pallet_grandpa::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type WeightInfo = (); + type WeightInfo = weights::pallet_grandpa::WeightInfo; type MaxAuthorities = MaxAuthorities; type MaxNominators = MaxNominators; @@ -969,7 +994,7 @@ impl pallet_collective::Config for Runtime { type MaxProposals = ConstU32; type MaxMembers = ConstU32; type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; - type SetMembersOrigin = EnsureRoot; + type SetMembersOrigin = EnsureRoot; type MaxProposalWeight = MaxProposalWeight; type WeightInfo = weights::pallet_collective::WeightInfo; } @@ -1050,19 +1075,22 @@ impl ghost_claims::Config for Runtime { } parameter_types! { - // will be used in `Perbill::from_parts()` - pub const ApplauseThreshold: u32 = if cfg!(feature = "runtime-benchmarks") { - 0 - } else { - 500_000_000 - }; - pub const MinAuthoritiesNumber: u32 = 5; pub const SlowClapUnsignedPriority: TransactionPriority = TransactionPriority::MAX; pub const SlowClapHistoryDepth: sp_staking::SessionIndex = StakingHistoryDepth::get() * SessionsPerEra::get(); } +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub const ApplauseThreshold: u32 = 0; +} + +#[cfg(not(feature = "runtime-benchmarks"))] +parameter_types! { + pub const ApplauseThreshold: u32 = 500_000_000; +} + impl ghost_slow_clap::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AuthorityId = SlowClapId; @@ -1075,8 +1103,9 @@ impl ghost_slow_clap::Config for Runtime { type DisabledValidators = Session; type ExposureListener = StakingExposureListener; - type MaxAuthorities = MaxAuthorities; type ApplauseThreshold = ApplauseThreshold; + + type MaxAuthorities = MaxAuthorities; type UnsignedPriority = SlowClapUnsignedPriority; type HistoryDepth = SlowClapHistoryDepth; type MinAuthoritiesNumber = MinAuthoritiesNumber; diff --git a/runtime/casper/src/weights/ghost_slow_clap.rs b/runtime/casper/src/weights/ghost_slow_clap.rs index 8582f3e..f085710 100644 --- a/runtime/casper/src/weights/ghost_slow_clap.rs +++ b/runtime/casper/src/weights/ghost_slow_clap.rs @@ -16,7 +16,7 @@ //! Autogenerated weights for `ghost_slow_clap` //! //! 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: 2026-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 @@ -76,8 +76,8 @@ impl ghost_slow_clap::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1417` // Estimated: `4882` - // Minimum execution time: 243_099_000 picoseconds. - Weight::from_parts(247_253_000, 0) + // Minimum execution time: 305_397_000 picoseconds. + Weight::from_parts(310_207_000, 0) .saturating_add(Weight::from_parts(0, 4882)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(6)) @@ -94,8 +94,8 @@ impl ghost_slow_clap::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `701` // Estimated: `4166` - // Minimum execution time: 74_725_000 picoseconds. - Weight::from_parts(76_067_000, 0) + // Minimum execution time: 88_007_000 picoseconds. + Weight::from_parts(89_662_000, 0) .saturating_add(Weight::from_parts(0, 4166)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -128,13 +128,13 @@ impl ghost_slow_clap::WeightInfo for WeightInfo { // 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) + // Minimum execution time: 13_294_008_000 picoseconds. + Weight::from_parts(13_307_595_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())) + // Standard Error: 1_146_439 + .saturating_add(Weight::from_parts(29_632_292, 0).saturating_mul(n.into())) + // Standard Error: 1_146_441 + .saturating_add(Weight::from_parts(14_654_685, 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()))) diff --git a/runtime/casper/src/weights/mod.rs b/runtime/casper/src/weights/mod.rs index d5f0747..1d130d1 100644 --- a/runtime/casper/src/weights/mod.rs +++ b/runtime/casper/src/weights/mod.rs @@ -5,12 +5,16 @@ pub mod ghost_networks; pub mod ghost_slow_clap; pub mod ghost_sudo; pub mod pallet_alliance; +pub mod pallet_babe; pub mod pallet_bags_list; pub mod pallet_balances; +pub mod pallet_bounties; +pub mod pallet_child_bounties; pub mod pallet_collective; pub mod pallet_core_fellowship; pub mod pallet_election_provider_multi_phase; pub mod pallet_fast_unstake; +pub mod pallet_grandpa; pub mod pallet_identity; pub mod pallet_indices; pub mod pallet_multisig; @@ -24,6 +28,7 @@ pub mod pallet_scheduler; pub mod pallet_session; pub mod pallet_staking; pub mod pallet_timestamp; +pub mod pallet_treasury; pub mod pallet_utility; pub mod pallet_vesting; pub mod pallet_whitelist; diff --git a/runtime/casper/src/weights/pallet_babe.rs b/runtime/casper/src/weights/pallet_babe.rs index cbb9baa..9238a37 100644 --- a/runtime/casper/src/weights/pallet_babe.rs +++ b/runtime/casper/src/weights/pallet_babe.rs @@ -16,7 +16,7 @@ //! Autogenerated weights for `pallet_babe` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-11-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-02-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 @@ -40,19 +40,52 @@ #![allow(unused_imports)] #![allow(missing_docs)] -use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; +use frame_support::{ + traits::Get, + weights::{ + constants::{RocksDbWeight as DbWeight, WEIGHT_REF_TIME_PER_MICROS, WEIGHT_REF_TIME_PER_NANOS}, + Weight, + }, +}; /// Weight functions for `pallet_babe`. pub struct WeightInfo(PhantomData); impl pallet_babe::WeightInfo for WeightInfo { - /// The range of component `x` is `[0, 1]`. - fn check_equivocation_proof(_x: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 295_038_000 picoseconds. - Weight::from_parts(298_100_475, 0) - .saturating_add(Weight::from_parts(0, 0)) - } + fn plan_config_change() -> Weight { + DbWeight::get().writes(1) + } + + fn report_equivocation(validator_count: u32, max_nominators_per_validator: u32) -> Weight { + // we take the validator set count from the membership proof to + // calculate the weight but we set a floor of 100 validators. + let validator_count = validator_count.max(100) as u64; + + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 305_618_000 picoseconds. + let equivocation_check_weight = Weight::from_parts(308_237_602, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 899_088 + .saturating_add(Weight::from_parts(7_097, 0).saturating_mul(validator_count.into())); + + // checking membership proof + Weight::from_parts(88u64 * WEIGHT_REF_TIME_PER_MICROS, 0) + .saturating_add( + Weight::from_parts(438u64 * WEIGHT_REF_TIME_PER_NANOS, 0) + .saturating_mul(validator_count), + ) + .saturating_add(DbWeight::get().reads(5)) + // check equivocation proof + .saturating_add(equivocation_check_weight) + // report offence + .saturating_add(equivocation_check_weight) + .saturating_add(Weight::from_parts( + 63u64 * WEIGHT_REF_TIME_PER_MICROS * max_nominators_per_validator as u64, + 0, + )) + .saturating_add(DbWeight::get().reads(14 + 3 * max_nominators_per_validator as u64)) + .saturating_add(DbWeight::get().writes(10 + 3 * max_nominators_per_validator as u64)) + } } diff --git a/runtime/casper/src/weights/pallet_bounties.rs b/runtime/casper/src/weights/pallet_bounties.rs index 5bbda45..25444a9 100644 --- a/runtime/casper/src/weights/pallet_bounties.rs +++ b/runtime/casper/src/weights/pallet_bounties.rs @@ -7,7 +7,7 @@ // Ghost Network 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 +// 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 @@ -16,7 +16,7 @@ //! Autogenerated weights for `pallet_bounties` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-08-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --steps=50 // --repeat=20 // --pallet=pallet_bounties -// --extrinsic=approve_bounty +// --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 // --header=./file_header.txt @@ -46,18 +46,181 @@ use core::marker::PhantomData; /// Weight functions for `pallet_bounties`. pub struct WeightInfo(PhantomData); impl pallet_bounties::WeightInfo for WeightInfo { + /// Storage: `Bounties::BountyCount` (r:1 w:1) + /// Proof: `Bounties::BountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:0 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// The range of component `d` is `[0, 16384]`. + fn propose_bounty(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `210` + // Estimated: `3593` + // Minimum execution time: 125_598_000 picoseconds. + Weight::from_parts(127_962_305, 0) + .saturating_add(Weight::from_parts(0, 3593)) + // Standard Error: 21 + .saturating_add(Weight::from_parts(1_868, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } /// Storage: `Bounties::Bounties` (r:1 w:1) /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) /// Storage: `Bounties::BountyApprovals` (r:1 w:1) - /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) fn approve_bounty() -> Weight { // Proof Size summary in bytes: // Measured: `302` + // Estimated: `5487` + // Minimum execution time: 57_515_000 picoseconds. + Weight::from_parts(58_519_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + fn propose_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `322` // Estimated: `3642` - // Minimum execution time: 52_739_000 picoseconds. - Weight::from_parts(53_443_000, 0) + // Minimum execution time: 51_036_000 picoseconds. + Weight::from_parts(51_462_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn unassign_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `498` + // Estimated: `3642` + // Minimum execution time: 169_646_000 picoseconds. + Weight::from_parts(172_576_000, 0) .saturating_add(Weight::from_parts(0, 3642)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn accept_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `494` + // Estimated: `3642` + // Minimum execution time: 125_617_000 picoseconds. + Weight::from_parts(127_448_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + fn award_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `3642` + // Minimum execution time: 65_865_000 picoseconds. + Weight::from_parts(66_641_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn claim_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `713` + // Estimated: `8799` + // Minimum execution time: 516_549_000 picoseconds. + Weight::from_parts(520_792_000, 0) + .saturating_add(Weight::from_parts(0, 8799)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn close_bounty_proposed() -> Weight { + // Proof Size summary in bytes: + // Measured: `445` + // Estimated: `3642` + // Minimum execution time: 185_684_000 picoseconds. + Weight::from_parts(187_810_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:0) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyDescriptions` (r:0 w:1) + /// Proof: `Bounties::BountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn close_bounty_active() -> Weight { + // Proof Size summary in bytes: + // Measured: `681` + // Estimated: `6196` + // Minimum execution time: 342_424_000 picoseconds. + Weight::from_parts(349_225_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: `Bounties::Bounties` (r:1 w:1) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + fn extend_bounty_expiry() -> Weight { + // Proof Size summary in bytes: + // Measured: `358` + // Estimated: `3642` + // Minimum execution time: 52_301_000 picoseconds. + Weight::from_parts(53_018_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:100 w:100) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:200 w:200) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `b` is `[0, 100]`. + fn spend_funds(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + b * (297 ±0)` + // Estimated: `5487 + b * (5206 ±0)` + // Minimum execution time: 14_296_000 picoseconds. + Weight::from_parts(14_433_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) + // Standard Error: 25_068 + .saturating_add(Weight::from_parts(160_411_223, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_parts(0, 5206).saturating_mul(b.into())) + } } diff --git a/runtime/casper/src/weights/pallet_child_bounties.rs b/runtime/casper/src/weights/pallet_child_bounties.rs new file mode 100644 index 0000000..57e34cc --- /dev/null +++ b/runtime/casper/src/weights/pallet_child_bounties.rs @@ -0,0 +1,198 @@ +// This file is part of Ghost Network. + +// Ghost Network 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. + +// Ghost Network 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 Ghost Network. If not, see . + +//! Autogenerated weights for `pallet_child_bounties` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2026-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 + +// Executed Command: +// ./target/release/ghost +// benchmark +// pallet +// --chain=casper-dev +// --steps=50 +// --repeat=20 +// --pallet=pallet_child_bounties +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --header=./file_header.txt +// --output=./runtime/casper/src/weights/pallet_child_bounties.rs + +#![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_child_bounties`. +pub struct WeightInfo(PhantomData); +impl pallet_child_bounties::WeightInfo for WeightInfo { + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyCount` (r:1 w:1) + /// Proof: `ChildBounties::ChildBountyCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:0 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// The range of component `d` is `[0, 16384]`. + fn add_child_bounty(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `541` + // Estimated: `6196` + // Minimum execution time: 291_192_000 picoseconds. + Weight::from_parts(296_557_773, 0) + .saturating_add(Weight::from_parts(0, 6196)) + // Standard Error: 42 + .saturating_add(Weight::from_parts(2_090, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + fn propose_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `595` + // Estimated: `3642` + // Minimum execution time: 69_659_000 picoseconds. + Weight::from_parts(70_289_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn accept_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `741` + // Estimated: `3642` + // Minimum execution time: 135_004_000 picoseconds. + Weight::from_parts(135_738_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn unassign_curator() -> Weight { + // Proof Size summary in bytes: + // Measured: `741` + // Estimated: `3642` + // Minimum execution time: 184_496_000 picoseconds. + Weight::from_parts(186_401_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + fn award_child_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `638` + // Estimated: `3642` + // Minimum execution time: 72_603_000 picoseconds. + Weight::from_parts(73_411_000, 0) + .saturating_add(Weight::from_parts(0, 3642)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn claim_child_bounty() -> Weight { + // Proof Size summary in bytes: + // Measured: `525` + // Estimated: `8799` + // Minimum execution time: 515_024_000 picoseconds. + Weight::from_parts(527_108_000, 0) + .saturating_add(Weight::from_parts(0, 8799)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn close_child_bounty_added() -> Weight { + // Proof Size summary in bytes: + // Measured: `841` + // Estimated: `6196` + // Minimum execution time: 330_763_000 picoseconds. + Weight::from_parts(334_197_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(6)) + } + /// Storage: `Bounties::Bounties` (r:1 w:0) + /// Proof: `Bounties::Bounties` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ChildBounties` (`max_values`: None, `max_size`: Some(145), added: 2620, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildrenCuratorFees` (r:1 w:1) + /// Proof: `ChildBounties::ChildrenCuratorFees` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ParentChildBounties` (r:1 w:1) + /// Proof: `ChildBounties::ParentChildBounties` (`max_values`: None, `max_size`: Some(16), added: 2491, mode: `MaxEncodedLen`) + /// Storage: `ChildBounties::ChildBountyDescriptions` (r:0 w:1) + /// Proof: `ChildBounties::ChildBountyDescriptions` (`max_values`: None, `max_size`: Some(16400), added: 18875, mode: `MaxEncodedLen`) + fn close_child_bounty_active() -> Weight { + // Proof Size summary in bytes: + // Measured: `1028` + // Estimated: `8799` + // Minimum execution time: 405_094_000 picoseconds. + Weight::from_parts(416_868_000, 0) + .saturating_add(Weight::from_parts(0, 8799)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(7)) + } +} diff --git a/runtime/casper/src/weights/pallet_grandpa.rs b/runtime/casper/src/weights/pallet_grandpa.rs index cf43a07..d8321ac 100644 --- a/runtime/casper/src/weights/pallet_grandpa.rs +++ b/runtime/casper/src/weights/pallet_grandpa.rs @@ -16,7 +16,7 @@ //! Autogenerated weights for `pallet_grandpa` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-11-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-02-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 @@ -40,20 +40,51 @@ #![allow(unused_imports)] #![allow(missing_docs)] -use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; +use frame_support::{ + traits::Get, + weights::{ + constants::{RocksDbWeight as DbWeight, WEIGHT_REF_TIME_PER_MICROS, WEIGHT_REF_TIME_PER_NANOS}, + Weight, + }, +}; /// Weight functions for `pallet_grandpa`. pub struct WeightInfo(PhantomData); impl pallet_grandpa::WeightInfo for WeightInfo { - /// The range of component `x` is `[0, 1]`. - fn check_equivocation_proof(_x: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 271_935_000 picoseconds. - Weight::from_parts(273_848_983, 0) - .saturating_add(Weight::from_parts(0, 0)) + fn report_equivocation(validator_count: u32, max_nominators_per_validator: u32) -> Weight { + // we take the validator set count from the membership proof to + // calculate the weight but we set a floor of 100 validators. + let validator_count = validator_count.max(100) as u64; + + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 272_018_000 picoseconds. + let check_equivocation_proof = Weight::from_parts(275_944_195, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_232_802 + .saturating_add(Weight::from_parts(1_472_404, 0).saturating_mul(validator_count.into())); + + // checking membership proof + Weight::from_parts(88u64 * WEIGHT_REF_TIME_PER_MICROS, 0) + .saturating_add( + Weight::from_parts(438u64 * WEIGHT_REF_TIME_PER_NANOS, 0) + .saturating_mul(validator_count), + ) + .saturating_add(DbWeight::get().reads(5)) + // check equivocation proof + .saturating_add(check_equivocation_proof) + // report offence + .saturating_add(check_equivocation_proof) + .saturating_add(Weight::from_parts( + 63u64 * WEIGHT_REF_TIME_PER_MICROS * max_nominators_per_validator as u64, + 0, + )) + .saturating_add(DbWeight::get().reads(14 + 3 * max_nominators_per_validator as u64)) + .saturating_add(DbWeight::get().writes(10 + 3 * max_nominators_per_validator as u64)) + // fetching set id -> session index mappings + .saturating_add(DbWeight::get().reads(2)) } /// Storage: `Grandpa::Stalled` (r:0 w:1) /// Proof: `Grandpa::Stalled` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) @@ -61,8 +92,8 @@ impl pallet_grandpa::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_027_000 picoseconds. - Weight::from_parts(11_341_000, 0) + // Minimum execution time: 12_930_000 picoseconds. + Weight::from_parts(13_281_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/runtime/casper/src/weights/pallet_treasury.rs b/runtime/casper/src/weights/pallet_treasury.rs index 0d6c199..298a9ec 100644 --- a/runtime/casper/src/weights/pallet_treasury.rs +++ b/runtime/casper/src/weights/pallet_treasury.rs @@ -7,7 +7,7 @@ // Ghost Network 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 +// 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 @@ -16,7 +16,7 @@ //! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-08-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2026-02-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `ghostown`, CPU: `Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("casper-dev")`, DB CACHE: 1024 @@ -29,7 +29,7 @@ // --steps=50 // --repeat=20 // --pallet=pallet_treasury -// --extrinsic=void_spend +// --extrinsic=* // --wasm-execution=compiled // --heap-pages=4096 // --header=./file_header.txt @@ -46,14 +46,151 @@ use core::marker::PhantomData; /// Weight functions for `pallet_treasury`. pub struct WeightInfo(PhantomData); impl pallet_treasury::WeightInfo for WeightInfo { + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + fn spend_local() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `5487` + // Minimum execution time: 52_840_000 picoseconds. + Weight::from_parts(54_220_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + fn propose_spend() -> Weight { + // Proof Size summary in bytes: + // Measured: `107` + // Estimated: `1489` + // Minimum execution time: 119_927_000 picoseconds. + Weight::from_parts(120_611_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Treasury::Proposals` (r:1 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn reject_proposal() -> Weight { + // Proof Size summary in bytes: + // Measured: `265` + // Estimated: `3593` + // Minimum execution time: 164_605_000 picoseconds. + Weight::from_parts(165_648_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Treasury::Proposals` (r:1 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 999]`. + fn approve_proposal(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `800 + p * (4 ±0)` + // Estimated: `5487` + // Minimum execution time: 38_600_000 picoseconds. + Weight::from_parts(54_379_372, 0) + .saturating_add(Weight::from_parts(0, 5487)) + // Standard Error: 669 + .saturating_add(Weight::from_parts(34_439, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + fn remove_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `5487` + // Minimum execution time: 28_269_000 picoseconds. + Weight::from_parts(28_811_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Treasury::Deactivated` (r:1 w:1) + /// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:998 w:998) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1996 w:1996) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Bounties::BountyApprovals` (r:1 w:1) + /// Proof: `Bounties::BountyApprovals` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) + /// The range of component `p` is `[0, 999]`. + fn on_initialize_proposals(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + p * (255 ±0)` + // Estimated: `5487 + p * (5206 ±0)` + // Minimum execution time: 93_001_000 picoseconds. + Weight::from_parts(93_875_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) + // Standard Error: 106_483 + .saturating_add(Weight::from_parts(173_774_586, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into())) + } + /// Storage: `Treasury::SpendCount` (r:1 w:1) + /// Proof: `Treasury::SpendCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Spends` (r:0 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn spend() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `1489` + // Minimum execution time: 47_856_000 picoseconds. + Weight::from_parts(49_457_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn payout() -> Weight { + // Proof Size summary in bytes: + // Measured: `124` + // Estimated: `3534` + // Minimum execution time: 54_017_000 picoseconds. + Weight::from_parts(54_712_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: `Treasury::Spends` (r:1 w:1) + /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + fn check_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `124` + // Estimated: `3534` + // Minimum execution time: 53_415_000 picoseconds. + Weight::from_parts(57_185_000, 0) + .saturating_add(Weight::from_parts(0, 3534)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } /// Storage: `Treasury::Spends` (r:1 w:1) /// Proof: `Treasury::Spends` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn void_spend() -> Weight { // Proof Size summary in bytes: // Measured: `124` // Estimated: `3534` - // Minimum execution time: 77_449_000 picoseconds. - Weight::from_parts(88_782_000, 0) + // Minimum execution time: 50_317_000 picoseconds. + Weight::from_parts(51_617_000, 0) .saturating_add(Weight::from_parts(0, 3534)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1))