From 7f68c5b656155acc674edaf191bfe1b75364d833 Mon Sep 17 00:00:00 2001 From: DavidHerran Date: Thu, 10 Sep 2026 18:17:05 -0500 Subject: [PATCH] =?UTF-8?q?docs(runtime):=20el=20comentario=20del=20vault?= =?UTF-8?q?=20decia=20que=20el=2025%=20de=20la=20Fundacion=20va=20a=20FNDT?= =?UTF-8?q?=20=E2=80=94=20no=20va?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `GovernanceTreasuryPalletId` llevaba una nota que decia «PRE-LAUNCH: el genesis mainnet debe rutear la Foundation 250M a esta cuenta (hoy va a FNDT — follow-up)». El follow-up ya estaba hecho y la nota no se enteró. MEDIDO en genesis_config_presets.rs: el preset mainnet asigna FOUNDATION_ALLOCATION − SUDO_OPERATIONAL_FLOAT = 249.000.000 OGC al vault og/gvtry (cuenta derivada de PalletId, sin llave privada) y 1.000.000 al placeholder FNDT, que es el sudo_key interim y necesita ese flotante porque el OriginFeeAdapter le cobra sus propios extrinsics Root. Importa porque la nota vieja hacía creer que la Fundación custodia el tesoro. No lo custodia: vive en una cuenta sin llave desde el bloque 0. Y salió al escribir la recomendacion de donde vive el DAO, donde ese dato es la premisa central. La nota nueva ademas separa lo que la vieja confundia: «sin llave privada» NO es «gobernado por los votantes». treasury_disbursement es ensure_root, Root hoy es pallet-sudo, y el amount/recipient los pone quien llama — el cuerpo de la propuesta es un hash y la cadena no puede leerlo. Cerrar esa brecha es el sunset. Solo comentario. Sin cambio de comportamiento, sin bump de version. Co-Authored-By: Claude Opus 5 --- crates/origin-chain-runtime/src/configs.rs | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/crates/origin-chain-runtime/src/configs.rs b/crates/origin-chain-runtime/src/configs.rs index c25b623..cc86e38 100644 --- a/crates/origin-chain-runtime/src/configs.rs +++ b/crates/origin-chain-runtime/src/configs.rs @@ -491,9 +491,26 @@ impl origin_chain_agent_identity::Config for Runtime { parameter_types! { /// FIX-6: PalletId de la cuenta-tesorería de governance (vault, sin private - /// key, determinística). Tiene el balance real OGC; solo la governance (Root) - /// la drena vía treasury_disbursement. PRE-LAUNCH: el genesis mainnet debe - /// rutear la Foundation 250M a esta cuenta (hoy va a FNDT — follow-up). + /// key, determinística). Tiene el balance real OGC y solo se drena vía + /// `treasury_disbursement`. + /// + /// EL FOLLOW-UP YA ESTÁ HECHO (medido 2026-09-10, y esta nota decía lo + /// contrario). El génesis de mainnet SÍ rutea el 25% de la Foundation aquí: + /// `genesis_config_presets.rs` asigna `FOUNDATION_ALLOCATION − + /// SUDO_OPERATIONAL_FLOAT` = **249.000.000 OGC** a esta cuenta, y solo + /// 1.000.000 al placeholder `FNDT`, que es el sudo_key interim y necesita + /// ese flotante porque el `OriginFeeAdapter` le cobra sus propios extrinsics + /// Root. La nota anterior («hoy va a FNDT — follow-up») envejeció y habría + /// hecho creer que la Fundación custodia el tesoro. No lo custodia: vive en + /// una cuenta sin llave privada desde el bloque 0. + /// + /// ⚠️ LO QUE SIGUE SIENDO CIERTO Y CONVIENE NO CONFUNDIR: «sin llave privada» + /// no es lo mismo que «gobernado por los votantes». `treasury_disbursement` + /// es `ensure_root`, y Root hoy es `pallet-sudo` (índice 12) — una llave. El + /// voto es precondición real (la propuesta debe estar `Approved`), pero el + /// gasto lo dispara Root, y el `amount`/`recipient` los pone quien llama, no + /// la propuesta (su cuerpo es un hash, la cadena no puede leerlo). Cerrar + /// esa brecha es el sunset a governance. pub const GovernanceTreasuryPalletId: frame_support::PalletId = frame_support::PalletId(*b"og/gvtry"); }