// 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. // SPEC 20: 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 // (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 // bloque dice de qué certificados sale. La razón es de Laurha: «El máximo de 5 de un día no es el // de otro». Entre días, un mismo extrinsic se separa hasta un 22 %. Cobrar sólo el último cobraba // de menos lo que otro día midió más alto sobre el mismo código. Lo encontró la revisión adversaria // de spec 20, en treasury_disbursement: 136 µs cobrados frente a 155 µs medidos sobre el wasm vigente. // // Los certificados, con lo que registró cada uno (todos con frame-omni-bencher 0.15.0, steps 50, // repeat 20, 5 procesos y el máximo por coeficiente con scripts/bench/max-de-n.py): // - 2026-10-24, de 17:41 a 17:46, wasm de spec 16 40cb5a1d…a1cf744 (main 3cd1068). Kernel // 6.18.34+rpt-rpi-2712, núcleo 3 aislado (partición «isolated» de origin-banco), governor // performance a 2,4 GHz, CI parada, throttled 0x0, 45-49 °C, taskset -c 3. // Fichero sha256 18b8fcd6…; en la rp1, ~/laurha-work/banco/spec16-20261024-1631 (SHA256SUMS // d930c5e1…). // - 2026-10-29, de 08:41 a 08:42, wasm de spec 18 539d7bf4…9311eb9. Núcleo 3 aislado, governor // performance a 2,4 GHz, CI parada con 0 procesos de gitea-runner, nodo de la cadena vivo en // 0-2, throttled 0x0, 58-62 °C. Fundido sha256 1e15d04e…; ~/laurha-work/banco/ // spec18-20261029-0841 (SHA256SUMS 90e3dff7…). // - 2026-11-02, de 12:24 a 12:25, wasm de spec 19 c817695a…f96b23a3 (main 158060b): el código que // corre. Mismo perfil que el 29-oct, 63,7-67,5 °C. Fundido sha256 6f5cfec1…; // ~/laurha-work/banco/spec19-20261102-1215 (SHA256SUMS 7449f247…). // 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 %. // 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 // (RocksDbWeight) no cambian y pesan más que la ejecución (revisión adversarial, 25-oct). //! Weights para `origin_chain_governance`, MEDIDOS en el banco de referencia y ENSAMBLADOS desde //! sus certificados con `scripts/bench/ensamblar-pesos.py` — NO editar a mano. //! //! Medir de nuevo: `scripts/bench/regen-weights.sh` sobre el banco, guardar el fundido en //! `scripts/bench/certificados/` y volver a ensamblar (ver la cabecera de arriba). //! //! GENERADO POR SUBSTRATE BENCHMARK CLI VERSION 51.0.0 //! FECHA: 2026-10-24, 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/origin_chain_runtime_spec16_3cd1068_bench.compact.compressed.wasm // --genesis-builder-preset // development // --pallet // origin_chain_governance // --extrinsic // // --steps // 50 // --repeat // 20 // --template // /home/davidherran/charon/bench/origin-weights-template.hbs // --header // /home/davidherran/charon/bench/HEADER.txt // --output // /home/davidherran/laurha-work/banco/spec16-20261024-1631/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: los tres certificados de la cabecera (sha256 18b8fcd6…, 1e15d04e…, 6f5cfec1…), ensamblados // con scripts/bench/ensamblar-pesos.py. pub trait WeightInfo { /// Peso de `submit_proposal` — MEDIDO sobre el WASM, no estimado a mano. fn submit_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; /// Peso de `submit_treasury_proposal` — MEDIDO sobre el WASM, no estimado a mano. fn submit_treasury_proposal() -> 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` // Máximo por coeficiente de: 2026-11-02-spec19-laurha. Weight::from_parts(137_796_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)) } /// 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` // 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) .saturating_add(Weight::from_parts(0, 5_338)) .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::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: `701` // Estimado: `6196` // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(159_519_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)) } /// 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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(41_463_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(48_648_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .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` // Máximo por coeficiente de: 2026-11-02-spec19-laurha. Weight::from_parts(269_796_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)) } /// 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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(32_593_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(36_093_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(161_114_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)) } /// 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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(196_648_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .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` // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(155_055_000, 0) .saturating_add(Weight::from_parts(0, 6_196)) .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` // 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) .saturating_add(Weight::from_parts(0, 3_593)) .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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(84_593_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .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` // Máximo por coeficiente de: 2026-10-24-spec16-laurha, 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(112_148_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .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` // 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) .saturating_add(Weight::from_parts(0, 5_338)) .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: `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: `723` // Estimado: `3722` // Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. Weight::from_parts(89_463_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)) } /// 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`) 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) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(T::DbWeight::get().reads(10_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(137_796_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) .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) .saturating_add(Weight::from_parts(0, 6_196)) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } fn add_council_member() -> Weight { Weight::from_parts(41_463_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } fn remove_council_member() -> Weight { Weight::from_parts(48_648_000, 0) .saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } fn veto_proposal() -> Weight { Weight::from_parts(269_796_000, 0) .saturating_add(Weight::from_parts(0, 16_416)) .saturating_add(RocksDbWeight::get().reads(24_u64)) .saturating_add(RocksDbWeight::get().writes(11_u64)) } fn mark_as_advisor() -> Weight { Weight::from_parts(32_593_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } fn unmark_as_advisor() -> Weight { Weight::from_parts(36_093_000, 0) .saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } fn override_council_veto() -> Weight { Weight::from_parts(161_114_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 submit_emergency_proposal() -> Weight { Weight::from_parts(196_648_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } fn treasury_disbursement() -> Weight { Weight::from_parts(155_055_000, 0) .saturating_add(Weight::from_parts(0, 6_196)) .saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } fn treasury_deposit() -> Weight { Weight::from_parts(105_983_000, 0) .saturating_add(Weight::from_parts(0, 3_593)) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } fn endorse_emergency_proposal() -> Weight { Weight::from_parts(84_593_000, 0) .saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } fn unlock_vote_funds() -> Weight { Weight::from_parts(112_148_000, 0) .saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } fn uphold_council_veto() -> Weight { Weight::from_parts(153_834_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) .saturating_add(Weight::from_parts(0, 3_722)) .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } fn submit_treasury_proposal() -> Weight { Weight::from_parts(145_629_000, 0) .saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(RocksDbWeight::get().reads(10_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()), ("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()), ("submit_treasury_proposal", <() as WeightInfo>::submit_treasury_proposal()), ]; 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" ); } } }