docs(consistency): comentarios stale post-RV7 + guard ficticio de tiers (audit ultra LOW)

Audit ultra 2026-07-04 (dimensión consistency-crosscheck):
- Reconciliada la contradicción del horizonte de agotamiento del pool: docs decían
  ~10-15 años (marco viejo de tasa variable) Y ~7.6 años (la matemática real de
  10 OGC/bloque). Todo a ~7.6 años + nota de que BlockReward es el dial.
- Fijados comentarios "mintea"/"inflación" que contradecían el techo duro RV7
  (la emisión LIBERA del pool, no acuña): runtime lib.rs:408, emission doc, genesis.
- tiers.rs: el comentario prometía un "regression test en origin-coin-tokenomics"
  que NO existe (ese crate es stub) — corregido a la verdad: la sincronía con
  arkhe-core es disciplina MANUAL (la cadena no depende de arkhe-core por diseño);
  los #[test] locales pinnean la escalera actual pero no cazan drift cross-crate.

Workspace 279 tests verde. Solo comentarios — cero cambio de comportamiento.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
davidherranandClaude Fable 5 committed 2026-07-04 14:58:29 -05:00
1 parent db4c8a37d3
commit 4ee178fbd5
4 files changed
+20 -11

No files matched your search

+7 -5
View File
@@ -16,7 +16,8 @@
//! aserción de compilación fija la oferta en 1.000M OGC; mintear violaría esa
//! constitución matemática. Por eso las "recompensas" son en realidad una
//! **liberación programada y finita**: el pool de 400M se agota matemáticamente
//! en ~10-15 años (10 OGC/bloque × ~5.256M bloques/año ≈ 52.6M/año), y a partir
//! en ~7.6 años (10 OGC/bloque × ~5.256M bloques/año ≈ 52.6M/año; `BlockReward`
//! es el dial que ajusta el horizonte), y a partir
//! de ahí los validadores se sostienen puramente del reciclaje de la economía
//! circular (fees, marketplace). El total issuance JAMÁS crece — el BM V2 se
//! cumple a rajatabla. Cuando el pool no cubre el reward completo, se libera lo
@@ -35,7 +36,8 @@
//! stake). El reward por bloque aquí es el substrate sobre el que Stage 2 hereda.
//!
//! **[`EmissionPaused`](pallet::EmissionPaused)** es la palanca de governance
//! (Root) que detiene este mint per-block. Sirve hoy como freno de inflación de
//! (Root) que detiene esta liberación per-block. Sirve hoy como freno de
//! emergencia de
//! emergencia y, en la activación de NPoS (Stage 2b, FIX-6), es el kill-switch
//! anti-doble-emisión: cuando `pallet_staking::EraPayout` empiece a pagar por-era
//! (un spec upgrade que swap-ea `SessionManager` a Staking + historical + añade
@@ -82,7 +84,7 @@ pub mod pallet {
type FindAuthor: FindAuthor<Self::AccountId>;
/// Recompensa por bloque en base units OGC (calibra el ritmo de
/// liberación; el pool finito lo agota en ~10-15 años).
/// liberación; el pool finito lo agota en ~7.6 años).
#[pallet::constant]
type BlockReward: Get<u128>;
@@ -209,7 +211,7 @@ pub mod pallet {
let pool = Self::ecosystem_account();
// TECHO DURO 1B: liberamos del pool FINITO, jamás minteamos.
// Expendable = el pool puede vaciarse hasta 0 (es su destino en
// ~10-15 años). Liberamos hasta lo que quede disponible.
// ~7.6 años). Liberamos hasta lo que quede disponible.
let available = T::Currency::reducible_balance(
&pool,
Preservation::Expendable,
@@ -548,7 +550,7 @@ mod tests {
fn kill_switch_pausa_detiene_el_mint() {
new_test_ext().execute_with(|| {
assert_ok!(Emission::set_emission_paused(RuntimeOrigin::root(), true));
// Pausada: on_initialize NO mintea nada.
// Pausada: on_initialize NO libera nada.
<Emission as Hooks<u64>>::on_initialize(1);
assert_eq!(Emission::total_emitted(), 0, "pausada: cero emisión");
assert_eq!(<Balances as Inspect<_>>::balance(&author()), 0);