feat(pesos): spec 21 con el certificado de Laurha, en vivo desde el bloque 98268

GSUN-3 (dos tercios para pagar del tesoro, commit anterior) entra con sus pesos medidos.

- scripts/bench/certificados/2026-11-02-spec21-laurha.rs: el fundido de Laurha
  (sha256 03fbaf72), el máximo de 5 procesos en el santuario de la rp1 sobre el wasm de banco
  6f75bb59. Control negativo de Laurha: en el mínimo, las 14 que no cambian quedan entre
  0,990 y 1,002.
- weights.rs: submit_treasury_proposal, finalize_proposal y finalize_override cambian de
  esqueleto (leen y escriben TreasurySupermajorityOf). Se les puso el bloque del certificado y
  luego se ensamblaron los cuatro certificados. --comprobar coincide, y ningún peso baja
  respecto a spec 20.
- Cola de cast_vote: 130,07 µs de un solo proceso. Se cobra; sobre spec 20 (127,72) es un +1,8 %.
- E2E (rv17_tesoro.py) paso 2e: busca el bloque del upgrade sólo dentro de la ventana de estado
  del nodo (~256 bloques), o lo toma de ORIGIN_BLOQUE_UPGRADE. La primera versión pedía el
  estado de bloques podados y el RPC no respondía.

En vivo en la testnet de la casa, con el WASM 048ea752:
- contrafactual: contra spec 20, el E2E reprueba en 2c porque TreasurySupermajorityOf no existe;
- set_code en el bloque 98268: CodeUpdated, la firma vieja se rechaza, la nueva entra, y la
  finalidad avanza;
- E2E verde del 0 al 5, con 2c (2, 3), 2d (la sembrada sin marca) y 2e (frontera en 98268:
  5 propuestas de antes sin marca y 2 de después con ella).

Pruebas: 373 del workspace, 0 fallan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CharonandClaude Opus 5.5 committed 2026-11-03 23:39:47 -05:00
1 parent 4be7da78c3
commit 935ca1ef5e
3 files changed
+841 -57

No files matched your search

+67 -47
View File
@@ -8,14 +8,15 @@
// invisible. Los numeros CANONICOS de mainnet salen del banco de referencia // invisible. Los numeros CANONICOS de mainnet salen del banco de referencia
// (Pi 5, governor y aislamiento declarados), no de la maquina de quien compila. // (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. // (CyberDeckRP1 · Raspberry Pi 5 · Cortex-A76). Ya no queda ningún smoke de Charon.
// //
// ENSAMBLADO, no generado de una sola corrida: // ENSAMBLADO, no generado de una sola corrida:
// python3 scripts/bench/ensamblar-pesos.py crates/origin-chain-governance/src/weights.rs \ // 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-24-spec16-laurha.rs \
// scripts/bench/certificados/2026-10-29-spec18-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 // (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 // 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 // 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 // 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 // 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 %. // 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 // 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 // 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 // Ed25519). Lo COBRADO sube menos, entre +4 % y +56 %, porque lecturas y escrituras de storage
@@ -157,8 +171,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `108` // Medido: `108`
// Estimado: `11402` // Estimado: `11402`
// Máximo por coeficiente de: 2026-11-02-spec19-laurha. // Máximo por coeficiente de: 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha.
Weight::from_parts(137_796_000, 0) Weight::from_parts(143_260_000, 0)
.saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(Weight::from_parts(0, 11_402))
.saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads(10_u64))
.saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64))
@@ -187,8 +201,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `2321` // Medido: `2321`
// Estimado: `5338` // 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(127_723_000, 0) Weight::from_parts(130_074_000, 0)
.saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(Weight::from_parts(0, 5_338))
.saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads(10_u64))
.saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64))
@@ -199,6 +213,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `System::Number` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
/// Storage: `Governance::VoteQuorumOf` (r:1 w:1) /// Storage: `Governance::VoteQuorumOf` (r:1 w:1)
/// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// 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) /// Storage: `Governance::ProposalBond` (r:1 w:1)
/// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) /// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`)
/// Storage: `Balances::TotalIssuance` (r:1 w:0) /// Storage: `Balances::TotalIssuance` (r:1 w:0)
@@ -213,13 +229,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn finalize_proposal() -> Weight { fn finalize_proposal() -> Weight {
// Proof size en bytes: // Proof size en bytes:
// Medido: `701` // Medido: `779`
// Estimado: `6196` // Estimado: `6196`
// Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. // Máximo por coeficiente de: 2026-11-02-spec21-laurha.
Weight::from_parts(159_519_000, 0) Weight::from_parts(171_408_000, 0)
.saturating_add(Weight::from_parts(0, 6_196)) .saturating_add(Weight::from_parts(0, 6_196))
.saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads(11_u64))
.saturating_add(T::DbWeight::get().writes(7_u64)) .saturating_add(T::DbWeight::get().writes(8_u64))
} }
/// Storage: `Governance::CouncilSize` (r:1 w:1) /// Storage: `Governance::CouncilSize` (r:1 w:1)
/// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `Governance::CouncilSize` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
@@ -237,7 +253,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `26` // Medido: `26`
// Estimado: `3554` // 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) Weight::from_parts(41_463_000, 0)
.saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(Weight::from_parts(0, 3_554))
.saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads(6_u64))
@@ -259,7 +275,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `154` // Medido: `154`
// Estimado: `3554` // 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) Weight::from_parts(48_648_000, 0)
.saturating_add(Weight::from_parts(0, 3_554)) .saturating_add(Weight::from_parts(0, 3_554))
.saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads(6_u64))
@@ -299,8 +315,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `1441` // Medido: `1441`
// Estimado: `16416` // Estimado: `16416`
// Máximo por coeficiente de: 2026-11-02-spec19-laurha. // Máximo por coeficiente de: 2026-11-02-spec19-laurha, 2026-11-02-spec21-laurha.
Weight::from_parts(269_796_000, 0) Weight::from_parts(272_056_000, 0)
.saturating_add(Weight::from_parts(0, 16_416)) .saturating_add(Weight::from_parts(0, 16_416))
.saturating_add(T::DbWeight::get().reads(24_u64)) .saturating_add(T::DbWeight::get().reads(24_u64))
.saturating_add(T::DbWeight::get().writes(11_u64)) .saturating_add(T::DbWeight::get().writes(11_u64))
@@ -319,7 +335,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `26` // Medido: `26`
// Estimado: `3513` // 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) Weight::from_parts(32_593_000, 0)
.saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(Weight::from_parts(0, 3_513))
.saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads(5_u64))
@@ -339,7 +355,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `99` // Medido: `99`
// Estimado: `3513` // 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) Weight::from_parts(36_093_000, 0)
.saturating_add(Weight::from_parts(0, 3_513)) .saturating_add(Weight::from_parts(0, 3_513))
.saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().reads(5_u64))
@@ -377,7 +393,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `2469` // Medido: `2469`
// Estimado: `5338` // 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) Weight::from_parts(161_114_000, 0)
.saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(Weight::from_parts(0, 5_338))
.saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads(14_u64))
@@ -409,7 +425,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `354` // Medido: `354`
// Estimado: `6132` // 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) Weight::from_parts(196_648_000, 0)
.saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(Weight::from_parts(0, 6_132))
.saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads(11_u64))
@@ -437,7 +453,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `615` // Medido: `615`
// Estimado: `6196` // 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) Weight::from_parts(155_055_000, 0)
.saturating_add(Weight::from_parts(0, 6_196)) .saturating_add(Weight::from_parts(0, 6_196))
.saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().reads(10_u64))
@@ -459,8 +475,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `102` // Medido: `102`
// Estimado: `3593` // Estimado: `3593`
// 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(105_983_000, 0) Weight::from_parts(114_612_000, 0)
.saturating_add(Weight::from_parts(0, 3_593)) .saturating_add(Weight::from_parts(0, 3_593))
.saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().reads(6_u64))
.saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64))
@@ -483,7 +499,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `154` // Medido: `154`
// Estimado: `6132` // 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) Weight::from_parts(84_593_000, 0)
.saturating_add(Weight::from_parts(0, 6_132)) .saturating_add(Weight::from_parts(0, 6_132))
.saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads(8_u64))
@@ -509,7 +525,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `2198` // Medido: `2198`
// Estimado: `5338` // 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) Weight::from_parts(112_148_000, 0)
.saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(Weight::from_parts(0, 5_338))
.saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads(8_u64))
@@ -547,8 +563,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Proof size en bytes: // Proof size en bytes:
// Medido: `2469` // Medido: `2469`
// Estimado: `5338` // 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(153_834_000, 0) Weight::from_parts(154_556_000, 0)
.saturating_add(Weight::from_parts(0, 5_338)) .saturating_add(Weight::from_parts(0, 5_338))
.saturating_add(T::DbWeight::get().reads(14_u64)) .saturating_add(T::DbWeight::get().reads(14_u64))
.saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes(6_u64))
@@ -569,6 +585,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Proof: `Governance::OverrideQuorum` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// Proof: `Governance::OverrideQuorum` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`)
/// Storage: `Governance::VoteQuorumOf` (r:1 w:1) /// Storage: `Governance::VoteQuorumOf` (r:1 w:1)
/// Proof: `Governance::VoteQuorumOf` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) /// 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) /// Storage: `System::ExecutionPhase` (r:1 w:0)
/// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`) /// Proof: `System::ExecutionPhase` (`max_values`: Some(1), `max_size`: Some(5), added: 500, mode: `MaxEncodedLen`)
/// Storage: `System::EventCount` (r:1 w:1) /// Storage: `System::EventCount` (r:1 w:1)
@@ -577,13 +595,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `System::Events` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn finalize_override() -> Weight { fn finalize_override() -> Weight {
// Proof size en bytes: // Proof size en bytes:
// Medido: `723` // Medido: `801`
// Estimado: `3722` // Estimado: `3722`
// Máximo por coeficiente de: 2026-10-29-spec18-laurha, 2026-11-02-spec19-laurha. // Máximo por coeficiente de: 2026-11-02-spec21-laurha.
Weight::from_parts(89_463_000, 0) Weight::from_parts(101_796_000, 0)
.saturating_add(Weight::from_parts(0, 3_722)) .saturating_add(Weight::from_parts(0, 3_722))
.saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().reads(12_u64))
.saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes(7_u64))
} }
/// Storage: `Governance::Proposals` (r:1 w:1) /// Storage: `Governance::Proposals` (r:1 w:1)
/// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`) /// Proof: `Governance::Proposals` (`max_values`: None, `max_size`: Some(257), added: 2732, mode: `MaxEncodedLen`)
@@ -605,37 +623,39 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// Proof: `Governance::TreasuryActions` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) /// Proof: `Governance::TreasuryActions` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`)
/// Storage: `Governance::ProposalBond` (r:0 w:1) /// Storage: `Governance::ProposalBond` (r:0 w:1)
/// Proof: `Governance::ProposalBond` (`max_values`: None, `max_size`: Some(96), added: 2571, mode: `MaxEncodedLen`) /// 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 { fn submit_treasury_proposal() -> Weight {
// Proof size en bytes: // Proof size en bytes:
// Medido: `108` // Medido: `108`
// Estimado: `11402` // Estimado: `11402`
// Máximo por coeficiente de: 2026-11-02-spec19-laurha. // Máximo por coeficiente de: 2026-11-02-spec21-laurha.
Weight::from_parts(145_629_000, 0) Weight::from_parts(157_500_000, 0)
.saturating_add(Weight::from_parts(0, 11_402)) .saturating_add(Weight::from_parts(0, 11_402))
.saturating_add(T::DbWeight::get().reads(10_u64)) .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 para mocks y tests — `RocksDbWeight` directo, sin necesitar `T`.
impl WeightInfo for () { impl WeightInfo for () {
fn submit_proposal() -> Weight { 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(Weight::from_parts(0, 11_402))
.saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads(10_u64))
.saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64))
} }
fn cast_vote() -> Weight { 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(Weight::from_parts(0, 5_338))
.saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads(10_u64))
.saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64))
} }
fn finalize_proposal() -> Weight { 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(Weight::from_parts(0, 6_196))
.saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads(11_u64))
.saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes(8_u64))
} }
fn add_council_member() -> Weight { fn add_council_member() -> Weight {
Weight::from_parts(41_463_000, 0) Weight::from_parts(41_463_000, 0)
@@ -650,7 +670,7 @@ impl WeightInfo for () {
.saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64))
} }
fn veto_proposal() -> Weight { 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(Weight::from_parts(0, 16_416))
.saturating_add(RocksDbWeight::get().reads(24_u64)) .saturating_add(RocksDbWeight::get().reads(24_u64))
.saturating_add(RocksDbWeight::get().writes(11_u64)) .saturating_add(RocksDbWeight::get().writes(11_u64))
@@ -686,7 +706,7 @@ impl WeightInfo for () {
.saturating_add(RocksDbWeight::get().writes(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64))
} }
fn treasury_deposit() -> Weight { 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(Weight::from_parts(0, 3_593))
.saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().reads(6_u64))
.saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64))
@@ -704,22 +724,22 @@ impl WeightInfo for () {
.saturating_add(RocksDbWeight::get().writes(5_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64))
} }
fn uphold_council_veto() -> Weight { 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(Weight::from_parts(0, 5_338))
.saturating_add(RocksDbWeight::get().reads(14_u64)) .saturating_add(RocksDbWeight::get().reads(14_u64))
.saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64))
} }
fn finalize_override() -> Weight { 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(Weight::from_parts(0, 3_722))
.saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().reads(12_u64))
.saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64))
} }
fn submit_treasury_proposal() -> Weight { 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(Weight::from_parts(0, 11_402))
.saturating_add(RocksDbWeight::get().reads(10_u64)) .saturating_add(RocksDbWeight::get().reads(10_u64))
.saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes(8_u64))
} }
} }
@@ -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: `<UNKNOWN>`
//! 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<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`
// 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"
);
}
}
}
+28 -10
View File
@@ -306,18 +306,36 @@ def frontera_del_upgrade():
"""2e · B = primer bloque cuyo estado dice spec >= 21 (búsqueda binaria). Una propuesta de """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, tesoro con start_block <= B la creó el runtime anterior y no lleva marca; una posterior,
sí. Cualquier otra combinación reprueba.""" 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): def spec(n):
return rpc("state_getRuntimeVersion", [rpc("chain_getBlockHash", [n])["result"]])["result"]["specVersion"] h = rpc("chain_getBlockHash", [n]).get("result")
lo, hi = 0, best() r = rpc("state_getRuntimeVersion", [h]) if h else {}
if spec(hi) < 21: 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") falla("2e: la cadena no llegó a spec 21")
while lo < hi: if os.environ.get("ORIGIN_BLOQUE_UPGRADE"):
mid = (lo + hi) // 2 b = int(os.environ["ORIGIN_BLOQUE_UPGRADE"])
if spec(mid) >= 21: if spec(b) is not None and spec(b) < 21:
hi = mid falla(f"2e: ORIGIN_BLOQUE_UPGRADE={b} todavía es spec {spec(b)}")
else: if spec(b - 1) is not None and spec(b - 1) >= 21:
lo = mid + 1 falla(f"2e: ORIGIN_BLOQUE_UPGRADE={b} no es el primero en spec 21")
b = lo 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") pref = "0x" + twox128("Governance") + twox128("TreasuryActions")
claves, desde = [], None claves, desde = [], None
while True: while True: