fix: checks positivos (CoinJoin) se marcan en verde, no como advertencia; docs: fixtures verificados
This commit is contained in:
+11
-1
@@ -20,7 +20,7 @@ nodo y corrige la fila).
|
||||
|
||||
| # | Tipo | txid | Resultado esperado | Verificado |
|
||||
|---|------|------|--------------------|------------|
|
||||
| 1 | Whirlpool CoinJoin | `323df21f0b0756f98336437aa3d2fb87e02b59f1946b714a7b09df04d429dec2` | CoinJoin detectado, banda ALTA, fingerprint "Samourai/Sparrow" inferido | ☐ |
|
||||
| 1 | Whirlpool CoinJoin (5×5, 2019) | `323df21f0b0756f98336437aa3d2fb87e02b59f1946b714a7b09df04d429dec2` | CoinJoin detectado (✓ verde), banda ALTA, fingerprint "Samourai/Sparrow (Whirlpool)" | ✅ 2026-06-03 |
|
||||
| 2 | WabiSabi CoinJoin | `fb596c9f675471019c60e984b569f9020dac3b2822b16396042b50c890b45e5e` | CoinJoin grande, banda ALTA, "Wasabi" inferido | ☐ |
|
||||
| 3 | JoinMarket CoinJoin | `4f112abd2eefe3484a7bbf7c1731f784cba19de677468835145e9c448fb18b7d` | CoinJoin con outputs iguales, verificar mínimo ~10k sats | ☐ |
|
||||
| 4 | Batch payment 144 outputs (F2Pool, 2022-02-15) | `ef5d100a70eea9b7349a40fdfd51064fc5cebf5e3b4240f92591569836896949` | 1→144 outputs, **NO** CoinJoin, banda **MEDIA**, check "Pago por lotes" penaliza (−45) | ✅ 2026-06-03 |
|
||||
@@ -113,3 +113,13 @@ título de cada check (CERTEZA/PROBABLE/POSIBLE) puede confundir cuando el check
|
||||
da resultado negativo —por ejemplo "Estructura CoinJoin / mezcla — PROBABLE"
|
||||
cuando en realidad NO hay CoinJoin (el resultado real está en el detalle, no en
|
||||
el badge). Pendiente de mejorar la claridad de la presentación.
|
||||
|
||||
### 2026-06-03 — Fixture #1 (Whirlpool CoinJoin)
|
||||
Al validar un Whirlpool real (5×5) se confirmó que el motor lo detecta bien
|
||||
(banda ALTA, fingerprint correcto), pero el check de CoinJoin se mostraba con
|
||||
icono gris neutro y badge ámbar, como si fuera una advertencia — cuando detectar
|
||||
un CoinJoin es algo POSITIVO para la privacidad. Corregido: el icono y color de
|
||||
cada check ahora reflejan si el resultado es bueno o malo para la privacidad
|
||||
(verde = bueno), no solo el estado interno. Un CoinJoin detectado sale en verde.
|
||||
El badge de certeza se mantiene aparte, indicando solo el nivel de confianza.
|
||||
Esto resuelve en parte el punto anterior sobre la claridad del badge.
|
||||
|
||||
+4
-4
@@ -1154,7 +1154,7 @@
|
||||
? `Detectado: ${cjVariant}. ${tx.vin.length} inputs, ${tx.vout.length} outputs, ${maxEqual} outputs de igual valor. Mejora significativa de privacidad.`
|
||||
: "No se detecta estructura CoinJoin. La transacción es trazable directamente.",
|
||||
didactic: "CoinJoin combina inputs de múltiples usuarios en una sola transacción con outputs de igual valor, rompiendo el enlace entre emisor y receptor. Whirlpool usa denominaciones fijas (100k, 1M, 5M, 50M sats). JoinMarket y Wasabi tienen estructuras similares.",
|
||||
penalty: 0, informational: true, positive: likelyCJ,
|
||||
penalty: 0, positive: likelyCJ, informational: !likelyCJ,
|
||||
});
|
||||
// Sin penalización por no usar CoinJoin — es una técnica avanzada, no un error
|
||||
|
||||
@@ -1846,11 +1846,11 @@
|
||||
<div key={check.id} style={{background:C.bgCard,border:`1px solid ${expanded===check.id?C.purple+"60":C.border}`,borderRadius:6,overflow:"hidden"}}>
|
||||
<div onClick={()=>setExpanded(expanded===check.id?null:check.id)}
|
||||
style={{display:"flex",alignItems:"center",gap:8,padding:"10px 14px",cursor:"pointer"}}>
|
||||
<span style={{fontSize:"0.8rem",color:check.informational?C.blue:check.pass?C.green:C.red,flexShrink:0,fontWeight:700}}>
|
||||
{check.informational?"·":check.pass?"✓":"✗"}
|
||||
<span style={{fontSize:"0.8rem",color:check.informational?C.blue:(check.positive&&!check.pass)?C.green:check.pass?C.green:C.red,flexShrink:0,fontWeight:700}}>
|
||||
{check.informational?"·":(check.positive&&!check.pass)?"✓":check.pass?"✓":"✗"}
|
||||
</span>
|
||||
<span style={{flex:1,fontSize:"0.73rem",color:C.t1,fontFamily:"monospace"}}>{check.label}</span>
|
||||
{!check.pass&&check.actionability&&(
|
||||
{!check.pass&&!check.positive&&check.actionability&&(
|
||||
<span style={{fontSize:"0.55rem",fontFamily:"monospace",padding:"2px 6px",borderRadius:3,flexShrink:0,
|
||||
background: check.actionability==="no_corregible"?C.redMuted:check.actionability==="wallet"?C.purpleMuted:C.amberMuted,
|
||||
color: check.actionability==="no_corregible"?C.red:check.actionability==="wallet"?C.purple:C.amber,
|
||||
|
||||
Reference in New Issue
Block a user