diff --git a/CreditContract/contracts/score/src/lib.rs b/CreditContract/contracts/score/src/lib.rs index ea3b40d..2987858 100644 --- a/CreditContract/contracts/score/src/lib.rs +++ b/CreditContract/contracts/score/src/lib.rs @@ -34,7 +34,7 @@ pub enum Error { MetaInvalida = 11, } -// ─── Storage Keys ───────────────────────────────────────────────────────────── +// Storage Keys #[contracttype] pub enum DataKey { @@ -56,7 +56,7 @@ pub enum DataKey { UsdcToken, } -// ─── Constantes del modelo de negocio ───────────────────────────────────────── +// Constantes del modelo de negocio /// Depósito mínimo: 2 USDC (en stroops, 7 decimales Stellar). const MIN_DEPOSIT: i128 = 20_000_000; @@ -71,7 +71,7 @@ const PRESTAMO_MAX_MESES: u32 = 24; /// 1 USDC = 10_000_000 stroops. const STROOP: i128 = 10_000_000; -// ─── Contrato ───────────────────────────────────────────────────────────────── +// Contrato #[contract] pub struct MananaSeguroContract; diff --git a/CreditContract/contracts/score/src/test.rs b/CreditContract/contracts/score/src/test.rs index 5517abe..4814e4e 100644 --- a/CreditContract/contracts/score/src/test.rs +++ b/CreditContract/contracts/score/src/test.rs @@ -64,7 +64,7 @@ fn test_depositar_minimo() { #[test] fn test_depositar_bajo_minimo() { let (_env, cliente, _admin, usuario, _usdc) = setup(); - // $1 USDC = 10_000_000 stroops — debe fallar con MontoBajoMinimo + // $1 USDC = 10_000_000 stroops, debe fallar con MontoBajoMinimo let res = cliente.try_depositar(&usuario, &10_000_000, &20); assert_eq!(res, Err(Ok(Error::MontoBajoMinimo))); } @@ -72,11 +72,11 @@ fn test_depositar_bajo_minimo() { #[test] fn test_depositar_anios_bloqueo_invalidos() { let (_env, cliente, _admin, usuario, _usdc) = setup(); - // Bloqueo 0 años — debe fallar con AniosBloqueoInvalidos + // Bloqueo 0 años, debe fallar con AniosBloqueoInvalidos let res_cero = cliente.try_depositar(&usuario, &20_000_000, &0); assert_eq!(res_cero, Err(Ok(Error::AniosBloqueoInvalidos))); - // Bloqueo 41 años — debe fallar con AniosBloqueoInvalidos + // Bloqueo 41 años, debe fallar con AniosBloqueoInvalidos let res_excede = cliente.try_depositar(&usuario, &20_000_000, &41); assert_eq!(res_excede, Err(Ok(Error::AniosBloqueoInvalidos))); } @@ -113,7 +113,7 @@ fn test_retirar_meta_alcanzada() { let primer_deposito = 100_000_000i128; cliente.depositar(&usuario, &primer_deposito, &1); - // Meta = 1_000_000_000 — depositar más para alcanzarla + // Meta = 1_000_000_000, depositar más para alcanzarla let usdc_admin = token::StellarAssetClient::new(&env, &usdc); usdc_admin.mint(&usuario, &2_000_000_000); @@ -185,7 +185,7 @@ fn test_autoprestamo_excede_limite() { let (_env, cliente, _admin, usuario, _usdc) = setup(); cliente.depositar(&usuario, &100_000_000, &20); - // Solicitar 40% — debe fallar con ExcedeLimitePrestamo + // Solicitar 40%, debe fallar con ExcedeLimitePrestamo let res = cliente.try_solicitar_prestamo(&usuario, &40_000_000); assert_eq!(res, Err(Ok(Error::ExcedeLimitePrestamo))); } @@ -223,7 +223,7 @@ fn test_no_retirar_con_prestamo_activo() { l.timestamp += 365 * 24 * 3600 + 1; }); - // Intentar retirar con préstamo activo — debe fallar con PrestamoPendiente + // Intentar retirar con préstamo activo, debe fallar con PrestamoPendiente let res = cliente.try_retirar(&usuario); assert_eq!(res, Err(Ok(Error::PrestamoPendiente))); } diff --git a/CreditContract/retiro_chain/contracts/retiro_chain/src/test.rs b/CreditContract/retiro_chain/contracts/retiro_chain/src/test.rs index f43e62d..f521894 100644 --- a/CreditContract/retiro_chain/contracts/retiro_chain/src/test.rs +++ b/CreditContract/retiro_chain/contracts/retiro_chain/src/test.rs @@ -10,7 +10,7 @@ fn deploy(env: &Env) -> RetiroChainClient<'_> { RetiroChainClient::new(env, &contract_id) } -// ─── Core tests ────────────────────────────────────────────────────────────── +// Core tests // inicializar computes ver_retiro = now + anos * seconds_per_year #[test] @@ -79,7 +79,7 @@ fn test_puede_retirar_true_after_date() { assert!(client.puede_retirar()); } -// ─── Edge cases ────────────────────────────────────────────────────────────── +// Edge cases // anos = 0 → retirement date equals the current timestamp // the >= check means puede_retirar is immediately true @@ -149,7 +149,7 @@ fn test_ver_balance_sin_inicializar() { assert_eq!(client.ver_balance(), 0); } -// depositar also works before inicializar — unwrap_or(0) seeds the missing balance key +// depositar also works before inicializar , unwrap_or(0) seeds the missing balance key #[test] fn test_depositar_sin_inicializar() { let env = Env::default(); @@ -160,7 +160,7 @@ fn test_depositar_sin_inicializar() { } // re-calling inicializar overwrites the retirement date because there is no -// re-initialization guard — this test documents that behaviour so it is explicit +// re-initialization guard , this test documents that behaviour so it is explicit #[test] fn test_inicializar_sobrescribe_retiro() { let env = Env::default(); diff --git a/CreditRoot/src/components/ErrorBoundary.jsx b/CreditRoot/src/components/ErrorBoundary.jsx index 1a58a3d..b17973e 100644 --- a/CreditRoot/src/components/ErrorBoundary.jsx +++ b/CreditRoot/src/components/ErrorBoundary.jsx @@ -1,19 +1,19 @@ // src/components/ErrorBoundary.jsx -// +// // Error Boundary global de la app. -// +// // React requiere que los Error Boundaries sean componentes de clase: los // hooks (useState/useEffect) NO pueden capturar errores de renderizado de los // hijos. Por eso este componente es una clase y no una función. -// +// // Captura cualquier error que se lance durante el render / lifecycle de los // componentes hijos (p. ej. DepositFlow o WithdrawalFlow cuando el polling // contra /api/etherfuse/order-status devuelve una forma inesperada) y muestra // una pantalla de respaldo amigable en lugar de dejar la app en blanco. -// +// // Props: -// children — árbol a proteger -// onReset — (opcional) callback extra al pulsar "Reintentar" +// children , árbol a proteger +// onReset , (opcional) callback extra al pulsar "Reintentar" import { Component, Fragment } from 'react' import { Link } from 'react-router-dom' @@ -38,7 +38,7 @@ export class ErrorBoundary extends Component { console.error('[ErrorBoundary] Componente capturado:', error, errorInfo) // TODO(Sentry): reportar a Sentry cuando esté configurado, p. ej. - // Sentry.captureException(error, { extra: { componentStack: errorInfo?.componentStack } }) + // Sentry.captureException(error, { extra: { componentStack: errorInfo?.componentStack } }) this.setState({ errorInfo }) } diff --git a/CreditRoot/src/data/retirementContent.js b/CreditRoot/src/data/retirementContent.js index 74196d7..5ace0ce 100644 --- a/CreditRoot/src/data/retirementContent.js +++ b/CreditRoot/src/data/retirementContent.js @@ -1,4 +1,4 @@ -// ─── Mañana Seguro — Constantes del modelo de negocio ─────────────────────── +// Mañana Seguro , Constantes del modelo de negocio export const MANANA_SEGURO_RATES = { cetesRate: 6.5, // tasa bruta actual de Banxico (CETES 28 días) @@ -16,7 +16,7 @@ export const MANANA_SEGURO_RATES = { constancyMinDeposit: 20, } -// Incentivos cada 5 años — máximo 7% +// Incentivos cada 5 años , máximo 7% export const INCENTIVE_SCENARIOS = [ { key: 'solo_fidelidad', label: 'Solo fidelidad', pct: 5, description: 'Mantienes tu ahorro sin retirar' }, { key: 'fidelidad_constancia', label: 'Fidelidad + constancia ($20/mes)', pct: 7, description: '+$20 USDC mensuales mínimo' }, @@ -31,7 +31,7 @@ export const plannerDefaults = { } // NOTA: retirementStats.value se actualiza dinámicamente en HomeScreen -// usando useEtherfuseRate() — este valor es solo el fallback inicial +// usando useEtherfuseRate() , este valor es solo el fallback inicial export const retirementStats = [ { label: 'Mexicanos sin pensión', value: '32M', caption: 'Trabajadores informales sin acceso al sistema tradicional.', tone: 'accent' }, { label: 'Rendimiento vía Etherfuse', value: '~5.5%', caption: 'APY en USDC que recibe el usuario. Respaldado por CETES.', tone: 'brand' }, diff --git a/CreditRoot/src/features/access/components/ConnectAccountCard.jsx b/CreditRoot/src/features/access/components/ConnectAccountCard.jsx index 3862635..5878e67 100644 --- a/CreditRoot/src/features/access/components/ConnectAccountCard.jsx +++ b/CreditRoot/src/features/access/components/ConnectAccountCard.jsx @@ -1,7 +1,7 @@ // src/features/access/components/ConnectAccountCard.jsx -// +// // Muestra la información del usuario autenticado con Google. -// Ya no pide conectar Freighter — el modelo es custodial via Supabase. +// Ya no pide conectar Freighter , el modelo es custodial via Supabase. import { useTranslation } from 'react-i18next' @@ -35,7 +35,7 @@ export function ConnectAccountCard({ usuario }) { ) } - // Usuario autenticado — mostrar sus datos + // Usuario autenticado , mostrar sus datos const panels = [ { label: t('connectCard.panelEstado'), diff --git a/CreditRoot/src/features/dashboard/components/AutoloanCard.jsx b/CreditRoot/src/features/dashboard/components/AutoloanCard.jsx index 5f77c03..0e403c7 100644 --- a/CreditRoot/src/features/dashboard/components/AutoloanCard.jsx +++ b/CreditRoot/src/features/dashboard/components/AutoloanCard.jsx @@ -48,7 +48,7 @@ export function AutoloanCard({ lockedBalance = 0, walletAddress = null }) { setFase('form') } } catch { - /* contrato sin datos aún — mostramos formulario */ + /* contrato sin datos aún, mostramos formulario */ setFase('form') } } @@ -103,7 +103,7 @@ export function AutoloanCard({ lockedBalance = 0, walletAddress = null }) { setRequested(Math.max(10, Math.min(250, Math.floor(maxLoan)))) } - // ── FASE: Cargando ──────────────────────────────────────────────────────────── + // FASE: Cargando if (fase === 'cargando') return (