diff --git a/crates/origin-chain-governance/src/weights.rs b/crates/origin-chain-governance/src/weights.rs index 4596e9c..2c060ec 100644 --- a/crates/origin-chain-governance/src/weights.rs +++ b/crates/origin-chain-governance/src/weights.rs @@ -8,14 +8,15 @@ // invisible. Los numeros CANONICOS de mainnet salen del banco de referencia // (Pi 5, governor y aislamiento declarados), no de la maquina de quien compila. -// SPEC 20: LOS 17 PESOS SALEN DE CERTIFICADOS DE LAURHA 🌊 en el banco de referencia de la rp1 +// SPEC 21: LOS 17 PESOS SALEN DE CERTIFICADOS DE LAURHA 🌊 en el banco de referencia de la rp1 // (CyberDeckRP1 · Raspberry Pi 5 · Cortex-A76). Ya no queda ningún smoke de Charon. // // ENSAMBLADO, no generado de una sola corrida: // python3 scripts/bench/ensamblar-pesos.py crates/origin-chain-governance/src/weights.rs \ // scripts/bench/certificados/2026-10-24-spec16-laurha.rs \ // scripts/bench/certificados/2026-10-29-spec18-laurha.rs \ -// scripts/bench/certificados/2026-11-02-spec19-laurha.rs +// scripts/bench/certificados/2026-11-02-spec19-laurha.rs \ +// scripts/bench/certificados/2026-11-02-spec21-laurha.rs // (con --comprobar dice si este fichero es exactamente ese ensamblado). Cada función cobra el // MÁXIMO, coeficiente a coeficiente, de TODOS los certificados que midieron su mismo código (el // mismo esqueleto de lecturas, escrituras y proof que el del certificado vigente, el último). Cada @@ -41,6 +42,19 @@ // Nota de Laurha sobre esta corrida: el máximo de endorse_emergency_proposal (84,6 µs frente a // 57,7-58,8 µs de los otros cuatro procesos) «es una cola, no el coste». Se cobra igual, porque el // banco cobra el caso malo; sobre el total cobrado es un +2 %. +// - 2026-11-02, de 21:18:43 a 21:19:43, wasm de spec 21 6f75bb59…0a58 (GSUN-3, dos tercios para el +// tesoro): el código que corre. Núcleo 3 aislado, governor performance a 2,4 GHz, CI parada con 0 +// procesos de gitea-runner, sin throttling, 45-49 °C. Fundido sha256 03fbaf72…; ~/laurha-work/ +// banco/spec21-20261102-2022 (SHA256SUMS f020e786…). +// - submit_treasury_proposal, finalize_proposal y finalize_override CAMBIAN DE ESQUELETO: leen y +// escriben TreasurySupermajorityOf (10/7 → 10/8, 10/7 → 11/8, 11/6 → 12/7). Sólo este +// certificado mide su código, así que cobran sólo de él. +// - El control negativo de Laurha: en el MÍNIMO por proceso, las otras 14 quedan entre 0,990 y +// 1,002 de su valor en spec 19. Sólo se mueven las tres que cambió el código (+2,0 %, +8,6 %, +// +9,4 %). +// - Nota de Laurha: el máximo de cast_vote (130,07 µs) viene de un solo proceso, el r5; los otros +// cuatro dan 104,87-106,67. Se cobra, por la misma regla. Sobre lo que ya cobraba spec 20 +// (127,72 µs, el máximo de los certificados anteriores) es un +1,8 %. // La Pi es el hardware MÁS LENTO que puede validar la red: sus pesos son el techo honesto. El // TIEMPO DE EJECUCIÓN sale de 2,5 a 3,9 veces el del Mac M3 Max (~6 veces en los que verifican // Ed25519). Lo COBRADO sube menos, entre +4 % y +56 %, porque lecturas y escrituras de storage @@ -157,8 +171,8 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `108` // Estimado: `11402` - // Máximo por coeficiente de: 2026-11-02-spec19-laurha. - Weight::from_parts(137_796_000, 0) + // Máximo por coeficiente de: 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. + Weight::from_parts(143_260_000, 0) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -187,8 +201,8 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `2321` // Estimado: `5338` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. - Weight::from_parts(127_723_000, 0) + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. + Weight::from_parts(130_074_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -199,6 +213,8 @@ impl WeightInfo for SubstrateWeight { /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: `Governance::VoteQuorumOf` (r:1 w:1) /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:1 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `Governance::ProposalBond` (r:1 w:1) /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) /// Storage: `Balances::TotalIssuance` (r:1 w:0) @@ -213,13 +229,13 @@ impl WeightInfo for SubstrateWeight { /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn finalize_proposal() -> Weight { // Proof size en bytes: - // Medido: `701` + // Medido: `779` // Estimado: `6196` - // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. - Weight::from_parts(159_519_000, 0) + // Máximo por coeficiente de: 2026-11-02-spec21-laurha. + Weight::from_parts(171_408_000, 0) .saturating_add(Weight::from_parts(0, 6_196)) - .saturating_add(T::DbWeight::get().reads(10_u64)) - .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } /// Storage: `Governance::CouncilSize` (r:1 w:1) /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -237,7 +253,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `26` // Estimado: `3554` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(41_463_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(T::DbWeight::get().reads(6_u64)) @@ -259,7 +275,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `154` // Estimado: `3554` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(48_648_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(T::DbWeight::get().reads(6_u64)) @@ -299,8 +315,8 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `1441` // Estimado: `16416` - // Máximo por coeficiente de: 2026-11-02-spec19-laurha. - Weight::from_parts(269_796_000, 0) + // Máximo por coeficiente de: 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. + Weight::from_parts(272_056_000, 0) .saturating_add(Weight::from_parts(0, 16_416)) .saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().writes(11_u64)) @@ -319,7 +335,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `26` // Estimado: `3513` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(32_593_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(T::DbWeight::get().reads(5_u64)) @@ -339,7 +355,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `99` // Estimado: `3513` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(36_093_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(T::DbWeight::get().reads(5_u64)) @@ -377,7 +393,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `2469` // Estimado: `5338` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(161_114_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(T::DbWeight::get().reads(14_u64)) @@ -409,7 +425,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `354` // Estimado: `6132` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(196_648_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(T::DbWeight::get().reads(11_u64)) @@ -437,7 +453,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `615` // Estimado: `6196` - // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(155_055_000, 0) .saturating_add(Weight::from_parts(0, 6_196)) .saturating_add(T::DbWeight::get().reads(10_u64)) @@ -459,8 +475,8 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `102` // Estimado: `3593` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. - Weight::from_parts(105_983_000, 0) + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. + Weight::from_parts(114_612_000, 0) .saturating_add(Weight::from_parts(0, 3_593)) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -483,7 +499,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `154` // Estimado: `6132` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(84_593_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -509,7 +525,7 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `2198` // Estimado: `5338` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. Weight::from_parts(112_148_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(T::DbWeight::get().reads(8_u64)) @@ -547,8 +563,8 @@ impl WeightInfo for SubstrateWeight { // Proof size en bytes: // Medido: `2469` // Estimado: `5338` - // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. - Weight::from_parts(153_834_000, 0) + // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha. + Weight::from_parts(154_556_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) @@ -569,6 +585,8 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Governance::OverrideQuorum` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Storage: `Governance::VoteQuorumOf` (r:1 w:1) /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:1 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) /// Storage: `System::ExecutionPhase` (r:1 w:0) /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) /// Storage: `System::EventCount` (r:1 w:1) @@ -577,13 +595,13 @@ impl WeightInfo for SubstrateWeight { /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn finalize_override() -> Weight { // Proof size en bytes: - // Medido: `723` + // Medido: `801` // Estimado: `3722` - // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. - Weight::from_parts(89_463_000, 0) + // Máximo por coeficiente de: 2026-11-02-spec21-laurha. + Weight::from_parts(101_796_000, 0) .saturating_add(Weight::from_parts(0, 3_722)) - .saturating_add(T::DbWeight::get().reads(11_u64)) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } /// Storage: `Governance::Proposals` (r:1 w:1) /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) @@ -605,37 +623,39 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Governance::TreasuryActions` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) /// Storage: `Governance::ProposalBond` (r:0 w:1) /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:0 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) fn submit_treasury_proposal() -> Weight { // Proof size en bytes: // Medido: `108` // Estimado: `11402` - // Máximo por coeficiente de: 2026-11-02-spec19-laurha. - Weight::from_parts(145_629_000, 0) + // Máximo por coeficiente de: 2026-11-02-spec21-laurha. + Weight::from_parts(157_500_000, 0) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(T::DbWeight::get().reads(10_u64)) - .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } } /// Impl para mocks y tests — `RocksDbWeight` directo, sin necesitar `T`. impl WeightInfo for () { fn submit_proposal() -> Weight { - Weight::from_parts(137_796_000, 0) + Weight::from_parts(143_260_000, 0) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } fn cast_vote() -> Weight { - Weight::from_parts(127_723_000, 0) + Weight::from_parts(130_074_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } fn finalize_proposal() -> Weight { - Weight::from_parts(159_519_000, 0) + Weight::from_parts(171_408_000, 0) .saturating_add(Weight::from_parts(0, 6_196)) - .saturating_add(RocksDbWeight::get().reads(10_u64)) - .saturating_add(RocksDbWeight::get().writes(7_u64)) + .saturating_add(RocksDbWeight::get().reads(11_u64)) + .saturating_add(RocksDbWeight::get().writes(8_u64)) } fn add_council_member() -> Weight { Weight::from_parts(41_463_000, 0) @@ -650,7 +670,7 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes(4_u64)) } fn veto_proposal() -> Weight { - Weight::from_parts(269_796_000, 0) + Weight::from_parts(272_056_000, 0) .saturating_add(Weight::from_parts(0, 16_416)) .saturating_add(RocksDbWeight::get().reads(24_u64)) .saturating_add(RocksDbWeight::get().writes(11_u64)) @@ -686,7 +706,7 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes(5_u64)) } fn treasury_deposit() -> Weight { - Weight::from_parts(105_983_000, 0) + Weight::from_parts(114_612_000, 0) .saturating_add(Weight::from_parts(0, 3_593)) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -704,22 +724,22 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().writes(5_u64)) } fn uphold_council_veto() -> Weight { - Weight::from_parts(153_834_000, 0) + Weight::from_parts(154_556_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(RocksDbWeight::get().reads(14_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } fn finalize_override() -> Weight { - Weight::from_parts(89_463_000, 0) + Weight::from_parts(101_796_000, 0) .saturating_add(Weight::from_parts(0, 3_722)) - .saturating_add(RocksDbWeight::get().reads(11_u64)) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().reads(12_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) } fn submit_treasury_proposal() -> Weight { - Weight::from_parts(145_629_000, 0) + Weight::from_parts(157_500_000, 0) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(RocksDbWeight::get().reads(10_u64)) - .saturating_add(RocksDbWeight::get().writes(7_u64)) + .saturating_add(RocksDbWeight::get().writes(8_u64)) } } diff --git a/scripts/bench/certificados/2026-11-02-spec21-laurha.rs b/scripts/bench/certificados/2026-11-02-spec21-laurha.rs new file mode 100644 index 0000000..192ae06 --- /dev/null +++ b/scripts/bench/certificados/2026-11-02-spec21-laurha.rs @@ -0,0 +1,746 @@ +// SPDX-License-Identifier: Apache-2.0 +// Origin Chain — Pilar 4 · Charon +// +// ATENCION AL LEER ESTOS NUMEROS: un weight es una LATENCIA, y una latencia sin +// el hardware y el perfil de potencia que la produjeron no se puede reproducir. +// La cabecera dice HOSTNAME y CPU: creele a eso y a nada mas. Un weight medido +// en un portatil y cobrado en un Pi 5 es mispricing estructural, solo que +// invisible. Los numeros CANONICOS de mainnet salen del banco de referencia +// (Pi 5, governor y aislamiento declarados), no de la maquina de quien compila. + +//! Weights AUTOGENERADOS para `origin_chain_governance` — NO editar a mano. +//! +//! Regenerar: `scripts/bench/regen-weights.sh` (ver ese script para el +//! procedimiento completo y el hardware al que hay que creerle). +//! +//! GENERADO POR SUBSTRATE BENCHMARK CLI VERSION 51.0.0 +//! FECHA: 2026-11-03, STEPS: `50`, REPEAT: `20` +//! HOSTNAME: `CyberDeckRP1`, CPU: `` +//! WASM-EXECUTION: `Compiled`, DB CACHE: 1024 + +// Comando ejecutado: +// /home/davidherran/.cargo/bin/frame-omni-bencher +// v1 +// benchmark +// pallet +// --runtime +// /home/davidherran/charon/bench-spec21/origin_chain_runtime_spec21_bench.compact.compressed.wasm +// --genesis-builder-preset +// development +// --pallet +// origin_chain_governance +// --extrinsic +// +// --steps +// 50 +// --repeat +// 20 +// --template +// /home/davidherran/charon/bench-spec21/origin-weights-template.hbs +// --header +// /home/davidherran/charon/bench-spec21/HEADER.txt +// --output +// /home/davidherran/laurha-work/banco/spec21-20261102-2022/r1/origin_chain_governance.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use core::marker::PhantomData; +use frame_support::{traits::Get, weights::constants::RocksDbWeight, weights::Weight}; + +/// Trait de weights para los extrinsics de `origin_chain_governance`. +// MAXIMO DE N = 5 PROCESOS (scripts/bench/max-de-n.py): cada coeficiente +// de tiempo y de proof es el maximo de los N; reads/writes iguales en los N. +// Entradas (sha256[:12]): bae8bf08a81b 4e3987c43770 e63d3d3cbd24 1e9eadbbc6bc 8b776241ccdd + +pub trait WeightInfo { + /// Peso de `submit_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn submit_proposal() -> Weight; + /// Peso de `submit_treasury_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn submit_treasury_proposal() -> Weight; + /// Peso de `cast_vote` — MEDIDO sobre el WASM, no estimado a mano. + fn cast_vote() -> Weight; + /// Peso de `finalize_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn finalize_proposal() -> Weight; + /// Peso de `add_council_member` — MEDIDO sobre el WASM, no estimado a mano. + fn add_council_member() -> Weight; + /// Peso de `remove_council_member` — MEDIDO sobre el WASM, no estimado a mano. + fn remove_council_member() -> Weight; + /// Peso de `veto_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn veto_proposal() -> Weight; + /// Peso de `mark_as_advisor` — MEDIDO sobre el WASM, no estimado a mano. + fn mark_as_advisor() -> Weight; + /// Peso de `unmark_as_advisor` — MEDIDO sobre el WASM, no estimado a mano. + fn unmark_as_advisor() -> Weight; + /// Peso de `override_council_veto` — MEDIDO sobre el WASM, no estimado a mano. + fn override_council_veto() -> Weight; + /// Peso de `submit_emergency_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn submit_emergency_proposal() -> Weight; + /// Peso de `treasury_disbursement` — MEDIDO sobre el WASM, no estimado a mano. + fn treasury_disbursement() -> Weight; + /// Peso de `treasury_deposit` — MEDIDO sobre el WASM, no estimado a mano. + fn treasury_deposit() -> Weight; + /// Peso de `endorse_emergency_proposal` — MEDIDO sobre el WASM, no estimado a mano. + fn endorse_emergency_proposal() -> Weight; + /// Peso de `unlock_vote_funds` — MEDIDO sobre el WASM, no estimado a mano. + fn unlock_vote_funds() -> Weight; + /// Peso de `uphold_council_veto` — MEDIDO sobre el WASM, no estimado a mano. + fn uphold_council_veto() -> Weight; + /// Peso de `finalize_override` — MEDIDO sobre el WASM, no estimado a mano. + fn finalize_override() -> Weight; +} + +/// Weights parametrizados por el `DbWeight` real del runtime. +pub struct SubstrateWeight(PhantomData); +impl WeightInfo for SubstrateWeight { + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::VoteQuorumOf` (r:0 w:1) + /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::ProposalBond` (r:0 w:1) + /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + fn submit_proposal() -> Weight { + // Proof size en bytes: + // Medido: `108` + // Estimado: `11402` + // Tiempo minimo de ejecucion: 133_611_000 picosegundos. + Weight::from_parts(143_260_000, 0) + .saturating_add(Weight::from_parts(0, 11402)) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::VoteQuorumOf` (r:0 w:1) + /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasuryActions` (r:0 w:1) + /// Proof: `Governance::TreasuryActions` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Governance::ProposalBond` (r:0 w:1) + /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:0 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + fn submit_treasury_proposal() -> Weight { + // Proof size en bytes: + // Medido: `108` + // Estimado: `11402` + // Tiempo minimo de ejecucion: 144_759_000 picosegundos. + Weight::from_parts(157_500_000, 0) + .saturating_add(Weight::from_parts(0, 11402)) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) + } + /// Storage: `Governance::AdvisorFlags` (r:1 w:0) + /// Proof: `Governance::AdvisorFlags` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::Votes` (r:1 w:1) + /// Proof: `Governance::Votes` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `MaxEncodedLen`) + /// Storage: `Governance::VoteLocks` (r:1 w:1) + /// Proof: `Governance::VoteLocks` (`max_values`: None, `max_size`: Some(1873), added: 4348, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn cast_vote() -> Weight { + // Proof size en bytes: + // Medido: `2321` + // Estimado: `5338` + // Tiempo minimo de ejecucion: 103_389_000 picosegundos. + Weight::from_parts(130_074_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::VoteQuorumOf` (r:1 w:1) + /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:1 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `Governance::ProposalBond` (r:1 w:1) + /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn finalize_proposal() -> Weight { + // Proof size en bytes: + // Medido: `779` + // Estimado: `6196` + // Tiempo minimo de ejecucion: 158_166_000 picosegundos. + Weight::from_parts(171_408_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) + } + /// Storage: `Governance::CouncilSize` (r:1 w:1) + /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::Council` (r:1 w:1) + /// Proof: `Governance::Council` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn add_council_member() -> Weight { + // Proof size en bytes: + // Medido: `26` + // Estimado: `3554` + // Tiempo minimo de ejecucion: 30_963_000 picosegundos. + Weight::from_parts(32_240_000, 0) + .saturating_add(Weight::from_parts(0, 3554)) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Governance::Council` (r:1 w:1) + /// Proof: `Governance::Council` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Governance::CouncilSize` (r:1 w:1) + /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn remove_council_member() -> Weight { + // Proof size en bytes: + // Medido: `154` + // Estimado: `3554` + // Tiempo minimo de ejecucion: 34_445_000 picosegundos. + Weight::from_parts(35_537_000, 0) + .saturating_add(Weight::from_parts(0, 3554)) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + } + /// Storage: `Governance::Council` (r:5 w:0) + /// Proof: `Governance::Council` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::CouncilSize` (r:1 w:0) + /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoVotes` (r:6 w:1) + /// Proof: `Governance::VetoVotes` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:5 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Governance::ProposalBond` (r:1 w:1) + /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::OverrideDeadline` (r:0 w:1) + /// Proof: `Governance::OverrideDeadline` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideQuorum` (r:0 w:1) + /// Proof: `Governance::OverrideQuorum` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoRejected` (r:0 w:1) + /// Proof: `Governance::VetoRejected` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoCount` (r:0 w:1) + /// Proof: `Governance::VetoCount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + fn veto_proposal() -> Weight { + // Proof size en bytes: + // Medido: `1441` + // Estimado: `16416` + // Tiempo minimo de ejecucion: 262_315_000 picosegundos. + Weight::from_parts(272_056_000, 0) + .saturating_add(Weight::from_parts(0, 16416)) + .saturating_add(T::DbWeight::get().reads(24_u64)) + .saturating_add(T::DbWeight::get().writes(11_u64)) + } + /// Storage: `Governance::AdvisorFlags` (r:1 w:1) + /// Proof: `Governance::AdvisorFlags` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn mark_as_advisor() -> Weight { + // Proof size en bytes: + // Medido: `26` + // Estimado: `3513` + // Tiempo minimo de ejecucion: 27_111_000 picosegundos. + Weight::from_parts(32_407_000, 0) + .saturating_add(Weight::from_parts(0, 3513)) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Governance::AdvisorFlags` (r:1 w:1) + /// Proof: `Governance::AdvisorFlags` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn unmark_as_advisor() -> Weight { + // Proof size en bytes: + // Medido: `99` + // Estimado: `3513` + // Tiempo minimo de ejecucion: 30_908_000 picosegundos. + Weight::from_parts(31_722_000, 0) + .saturating_add(Weight::from_parts(0, 3513)) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:0) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoRejected` (r:1 w:0) + /// Proof: `Governance::VetoRejected` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::AdvisorFlags` (r:1 w:0) + /// Proof: `Governance::AdvisorFlags` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideVotes` (r:1 w:1) + /// Proof: `Governance::OverrideVotes` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Governance::UpholdVotes` (r:1 w:0) + /// Proof: `Governance::UpholdVotes` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideDeadline` (r:1 w:0) + /// Proof: `Governance::OverrideDeadline` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::VoteLocks` (r:1 w:1) + /// Proof: `Governance::VoteLocks` (`max_values`: None, `max_size`: Some(1873), added: 4348, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::OverrideStakeTotal` (r:1 w:1) + /// Proof: `Governance::OverrideStakeTotal` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + fn override_council_veto() -> Weight { + // Proof size en bytes: + // Medido: `2469` + // Estimado: `5338` + // Tiempo minimo de ejecucion: 129_092_000 picosegundos. + Weight::from_parts(158_037_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(T::DbWeight::get().reads(14_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Governance::Council` (r:1 w:0) + /// Proof: `Governance::Council` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Governance::CouncilSize` (r:1 w:0) + /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::EmergencyEndorsements` (r:2 w:1) + /// Proof: `Governance::EmergencyEndorsements` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::ProposalBond` (r:0 w:1) + /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + fn submit_emergency_proposal() -> Weight { + // Proof size en bytes: + // Medido: `354` + // Estimado: `6132` + // Tiempo minimo de ejecucion: 157_000_000 picosegundos. + Weight::from_parts(159_574_000, 0) + .saturating_add(Weight::from_parts(0, 6132)) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:0) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Governance::Disbursed` (r:1 w:1) + /// Proof: `Governance::Disbursed` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasuryActions` (r:1 w:0) + /// Proof: `Governance::TreasuryActions` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn treasury_disbursement() -> Weight { + // Proof size en bytes: + // Medido: `615` + // Estimado: `6196` + // Tiempo minimo de ejecucion: 134_722_000 picosegundos. + Weight::from_parts(147_148_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Balances::TotalIssuance` (r:1 w:0) + /// Proof: `Balances::TotalIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn treasury_deposit() -> Weight { + // Proof size en bytes: + // Medido: `102` + // Estimado: `3593` + // Tiempo minimo de ejecucion: 96_426_000 picosegundos. + Weight::from_parts(114_612_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Governance::Council` (r:1 w:0) + /// Proof: `Governance::Council` (`max_values`: None, `max_size`: Some(89), added: 2564, mode: `MaxEncodedLen`) + /// Storage: `Governance::EmergencyEndorsements` (r:2 w:1) + /// Proof: `Governance::EmergencyEndorsements` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) + /// Storage: `Governance::CouncilSize` (r:1 w:0) + /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn endorse_emergency_proposal() -> Weight { + // Proof size en bytes: + // Medido: `154` + // Estimado: `6132` + // Tiempo minimo de ejecucion: 56_482_000 picosegundos. + Weight::from_parts(59_407_000, 0) + .saturating_add(Weight::from_parts(0, 6132)) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + } + /// Storage: `Governance::VoteLocks` (r:1 w:1) + /// Proof: `Governance::VoteLocks` (`max_values`: None, `max_size`: Some(1873), added: 4348, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn unlock_vote_funds() -> Weight { + // Proof size en bytes: + // Medido: `2198` + // Estimado: `5338` + // Tiempo minimo de ejecucion: 82_296_000 picosegundos. + Weight::from_parts(95_463_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:0) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoRejected` (r:1 w:0) + /// Proof: `Governance::VetoRejected` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::AdvisorFlags` (r:1 w:0) + /// Proof: `Governance::AdvisorFlags` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideVotes` (r:1 w:0) + /// Proof: `Governance::OverrideVotes` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Governance::UpholdVotes` (r:1 w:1) + /// Proof: `Governance::UpholdVotes` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideDeadline` (r:1 w:0) + /// Proof: `Governance::OverrideDeadline` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::VoteLocks` (r:1 w:1) + /// Proof: `Governance::VoteLocks` (`max_values`: None, `max_size`: Some(1873), added: 4348, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:1) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(67), added: 2542, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:0) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Governance::UpholdStakeTotal` (r:1 w:1) + /// Proof: `Governance::UpholdStakeTotal` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + fn uphold_council_veto() -> Weight { + // Proof size en bytes: + // Medido: `2469` + // Estimado: `5338` + // Tiempo minimo de ejecucion: 129_371_000 picosegundos. + Weight::from_parts(154_556_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(T::DbWeight::get().reads(14_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) + } + /// Storage: `Governance::Proposals` (r:1 w:1) + /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) + /// Storage: `Governance::VetoRejected` (r:1 w:0) + /// Proof: `Governance::VetoRejected` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideDeadline` (r:1 w:1) + /// Proof: `Governance::OverrideDeadline` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::Number` (r:1 w:0) + /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideStakeTotal` (r:1 w:0) + /// Proof: `Governance::OverrideStakeTotal` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::UpholdStakeTotal` (r:1 w:0) + /// Proof: `Governance::UpholdStakeTotal` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::OverrideQuorum` (r:1 w:1) + /// Proof: `Governance::OverrideQuorum` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::VoteQuorumOf` (r:1 w:1) + /// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Governance::TreasurySupermajorityOf` (r:1 w:1) + /// Proof: `Governance::TreasurySupermajorityOf` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `System::ExecutionPhase` (r:1 w:0) + /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) + /// Storage: `System::EventCount` (r:1 w:1) + /// Proof: `System::EventCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Events` (r:1 w:1) + /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn finalize_override() -> Weight { + // Proof size en bytes: + // Medido: `801` + // Estimado: `3722` + // Tiempo minimo de ejecucion: 93_649_000 picosegundos. + Weight::from_parts(101_796_000, 0) + .saturating_add(Weight::from_parts(0, 3722)) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + } +} + +/// Impl para mocks y tests — `RocksDbWeight` directo, sin necesitar `T`. +impl WeightInfo for () { + fn submit_proposal() -> Weight { + Weight::from_parts(143_260_000, 0) + .saturating_add(Weight::from_parts(0, 11402)) + .saturating_add(RocksDbWeight::get().reads(10_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + fn submit_treasury_proposal() -> Weight { + Weight::from_parts(157_500_000, 0) + .saturating_add(Weight::from_parts(0, 11402)) + .saturating_add(RocksDbWeight::get().reads(10_u64)) + .saturating_add(RocksDbWeight::get().writes(8_u64)) + } + fn cast_vote() -> Weight { + Weight::from_parts(130_074_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(RocksDbWeight::get().reads(10_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + fn finalize_proposal() -> Weight { + Weight::from_parts(171_408_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(RocksDbWeight::get().reads(11_u64)) + .saturating_add(RocksDbWeight::get().writes(8_u64)) + } + fn add_council_member() -> Weight { + Weight::from_parts(32_240_000, 0) + .saturating_add(Weight::from_parts(0, 3554)) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + } + fn remove_council_member() -> Weight { + Weight::from_parts(35_537_000, 0) + .saturating_add(Weight::from_parts(0, 3554)) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + } + fn veto_proposal() -> Weight { + Weight::from_parts(272_056_000, 0) + .saturating_add(Weight::from_parts(0, 16416)) + .saturating_add(RocksDbWeight::get().reads(24_u64)) + .saturating_add(RocksDbWeight::get().writes(11_u64)) + } + fn mark_as_advisor() -> Weight { + Weight::from_parts(32_407_000, 0) + .saturating_add(Weight::from_parts(0, 3513)) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + fn unmark_as_advisor() -> Weight { + Weight::from_parts(31_722_000, 0) + .saturating_add(Weight::from_parts(0, 3513)) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + fn override_council_veto() -> Weight { + Weight::from_parts(158_037_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(RocksDbWeight::get().reads(14_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + fn submit_emergency_proposal() -> Weight { + Weight::from_parts(159_574_000, 0) + .saturating_add(Weight::from_parts(0, 6132)) + .saturating_add(RocksDbWeight::get().reads(11_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + fn treasury_disbursement() -> Weight { + Weight::from_parts(147_148_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(RocksDbWeight::get().reads(10_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) + } + fn treasury_deposit() -> Weight { + Weight::from_parts(114_612_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + fn endorse_emergency_proposal() -> Weight { + Weight::from_parts(59_407_000, 0) + .saturating_add(Weight::from_parts(0, 6132)) + .saturating_add(RocksDbWeight::get().reads(8_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) + } + fn unlock_vote_funds() -> Weight { + Weight::from_parts(95_463_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(RocksDbWeight::get().reads(8_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) + } + fn uphold_council_veto() -> Weight { + Weight::from_parts(154_556_000, 0) + .saturating_add(Weight::from_parts(0, 5338)) + .saturating_add(RocksDbWeight::get().reads(14_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) + } + fn finalize_override() -> Weight { + Weight::from_parts(101_796_000, 0) + .saturating_add(Weight::from_parts(0, 3722)) + .saturating_add(RocksDbWeight::get().reads(12_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) + } +} + +#[cfg(test)] +mod guard { + use super::*; + + /// NINGUN EXTRINSIC PUEDE DECLARAR `proof_size = 0`. + /// + /// El `proof_size` es lo que el block-builder usa para no pasarse del limite + /// de PoV. Un cero no dice «este extrinsic no toca storage»: dice «miento + /// sobre lo que va a ocupar la prueba», y con eso entra en un bloque mucho + /// mas de lo que cabe. + /// + /// El test nace de un error propio y de la peor clase: la cabecera de los + /// weights interinos afirmaba que `T::DbWeight` «puebla tanto ref_time como + /// proof_size … cerrando el hueco». Es falso y se comprueba en la fuente — + /// `sp_weights::RuntimeDbWeight` solo tiene los campos `read` y `write`, y + /// `reads(r)` devuelve `Weight::from_parts(read * r, 0)`. Los interinos + /// arreglaron reads/writes y dejaron el proof_size donde estaba: en 0. La + /// afirmacion de haberlo cerrado sobrevivio mas de un mes sin que ninguna + /// lectura la desmintiera; la desmintio una medicion. + /// + /// Esta lista la GENERA la plantilla a partir de los benchmarks reales, asi + /// que no puede quedarse corta cuando se anada un extrinsic nuevo. + #[test] + fn ningun_weight_declara_proof_size_cero() { + let casos: &[(&str, Weight)] = &[ + ("submit_proposal", <() as WeightInfo>::submit_proposal()), + ("submit_treasury_proposal", <() as WeightInfo>::submit_treasury_proposal()), + ("cast_vote", <() as WeightInfo>::cast_vote()), + ("finalize_proposal", <() as WeightInfo>::finalize_proposal()), + ("add_council_member", <() as WeightInfo>::add_council_member()), + ("remove_council_member", <() as WeightInfo>::remove_council_member()), + ("veto_proposal", <() as WeightInfo>::veto_proposal()), + ("mark_as_advisor", <() as WeightInfo>::mark_as_advisor()), + ("unmark_as_advisor", <() as WeightInfo>::unmark_as_advisor()), + ("override_council_veto", <() as WeightInfo>::override_council_veto()), + ("submit_emergency_proposal", <() as WeightInfo>::submit_emergency_proposal()), + ("treasury_disbursement", <() as WeightInfo>::treasury_disbursement()), + ("treasury_deposit", <() as WeightInfo>::treasury_deposit()), + ("endorse_emergency_proposal", <() as WeightInfo>::endorse_emergency_proposal()), + ("unlock_vote_funds", <() as WeightInfo>::unlock_vote_funds()), + ("uphold_council_veto", <() as WeightInfo>::uphold_council_veto()), + ("finalize_override", <() as WeightInfo>::finalize_override()), + ]; + for (nombre, w) in casos { + assert!( + w.proof_size() > 0, + "`{nombre}` declara proof_size = 0: miente al block-builder sobre el peso PoV" + ); + assert!( + w.ref_time() > 0, + "`{nombre}` declara ref_time = 0: el extrinsic saldria gratis" + ); + } + } +} diff --git a/scripts/e2e/rv17_tesoro.py b/scripts/e2e/rv17_tesoro.py index 9103d18..cd91ff3 100644 --- a/scripts/e2e/rv17_tesoro.py +++ b/scripts/e2e/rv17_tesoro.py @@ -306,18 +306,36 @@ def frontera_del_upgrade(): """2e · B = primer bloque cuyo estado dice spec >= 21 (búsqueda binaria). Una propuesta de tesoro con start_block <= B la creó el runtime anterior y no lleva marca; una posterior, sí. Cualquier otra combinación reprueba.""" + # Un nodo que no es de archivo sólo guarda el estado de los últimos ~256 bloques (medido el + # 3-nov: la primera versión buscaba por toda la cadena y el RPC no tenía el estado de los + # bloques viejos). Se busca dentro de esa ventana; si el upgrade es más viejo, se pasa + # ORIGIN_BLOQUE_UPGRADE (lo imprime upgrade_en_vivo.py en su paso 1). def spec(n): - return rpc("state_getRuntimeVersion", [rpc("chain_getBlockHash", [n])["result"]])["result"]["specVersion"] - lo, hi = 0, best() - if spec(hi) < 21: + h = rpc("chain_getBlockHash", [n]).get("result") + r = rpc("state_getRuntimeVersion", [h]) if h else {} + return r.get("result", {}).get("specVersion") # None si el estado ya está podado + hi = best() + if (spec(hi) or 0) < 21: falla("2e: la cadena no llegó a spec 21") - while lo < hi: - mid = (lo + hi) // 2 - if spec(mid) >= 21: - hi = mid - else: - lo = mid + 1 - b = lo + if os.environ.get("ORIGIN_BLOQUE_UPGRADE"): + b = int(os.environ["ORIGIN_BLOQUE_UPGRADE"]) + if spec(b) is not None and spec(b) < 21: + falla(f"2e: ORIGIN_BLOQUE_UPGRADE={b} todavía es spec {spec(b)}") + if spec(b - 1) is not None and spec(b - 1) >= 21: + falla(f"2e: ORIGIN_BLOQUE_UPGRADE={b} no es el primero en spec 21") + else: + lo = max(0, hi - 250) + if spec(lo) is None: + falla(f"2e: el nodo no tiene el estado del bloque #{lo}; pasa ORIGIN_BLOQUE_UPGRADE") + if spec(lo) >= 21: + falla(f"2e: el upgrade es anterior a #{lo}, fuera de la ventana de estado; pasa ORIGIN_BLOQUE_UPGRADE") + while lo < hi: + mid = (lo + hi) // 2 + if spec(mid) >= 21: + hi = mid + else: + lo = mid + 1 + b = lo pref = "0x" + twox128("Governance") + twox128("TreasuryActions") claves, desde = [], None while True: