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"); }