Files
arkhe-origin-chain/crates/origin-chain-governance/src/weights.rs
T
CharonandClaude Opus 5.5 6055faff1b feat(pesos): spec 20, los 17 pesos del gobierno salen de los certificados de Laurha
Ya no queda ningun smoke de Charon. weights.rs se ENSAMBLA desde los tres certificados del banco
de referencia (la Pi 5) con scripts/bench/ensamblar-pesos.py:
- Cada funcion cobra el maximo, coeficiente a coeficiente, de todos los certificados que midieron
  su mismo codigo (mismo esqueleto de lecturas, escrituras y proof que el del ultimo, que es el del
  codigo que corre).
- Con --comprobar dice si el fichero es exactamente ese ensamblado: probado en rojo cambiando a
  mano un peso.
- Los tres certificados quedan en scripts/bench/certificados/ (sha256 18b8fcd6, 1e15d04e y
  6f5cfec1), con su perfil y su evidencia en la cabecera.

Por que el maximo de todos y no solo el ultimo: «El maximo de 5 de un dia no es el de otro»
(Laurha). La revision adversaria de spec 20 encontro que cobrar solo el certificado vigente de
cada funcion dejaba treasury_disbursement en 136 us, cuando el certificado del 2-nov, sobre el
wasm que corre, mide 155 us, y otros siete por debajo de lo medido. Con la regla, ningun peso baja
respecto a spec 19; los que suben, entre el +1 % y el +33 % de ejecucion.

Probado:
- 365 tests verdes.
- Ensayo en la rp1 sobre una cadena con el codigo vivo de spec 19. Contrafactual: con estos pesos,
  el E2E reprueba contra spec 19, porque la cadena cobra los viejos. Tras el upgrade a 20 pasa
  entero, y lo cobrado es weights.rs + extensiones.

Ademas: configs.rs ya no dice «Weights INTERIM hand-derived» en los cinco pallets, que cobran
pesos certificados desde spec 17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:47:00 -05:00

781 lines
45 KiB
Rust

// 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: `<UNKNOWN>`
//! 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<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// 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"
);
}
}
}