feat(ui): treat transparent addresses as mining-only addresses
DragonX is a private chain (-ac_private=1): consensus rejects any
non-coinbase output to a transparent address, so a t-address can only
ever receive mining rewards, and its coins can only move to a shielded
address. The wallet treated them like ordinary recipients.
Block paying one:
- Send: a transparent recipient shows "Mining address - can't be paid"
and disables Review Send (tooltip explains; ask for a zs... address).
Typing, paste, contacts and payment URIs all go through this field.
- Overview drag-to-transfer: a mining-address row is never a transfer
target (it only reorders).
- Pool payout must be shielded (pools pay with ordinary transactions):
field tooltip, disabled Start button and the start check say why.
- isValidRecipientAddress() is now shielded-only; new isDragonXAddress()
and classifyRecipient() (Shielded / MiningOnly / Invalid).
Call them mining addresses:
- Overview: "Mining rewards" card (amber "Not yet shielded" when there
is a balance; hover explains; click opens the Shield dialog), "New
mining address" button with a tooltip, rows typed "Mining".
- QR / label dialogs, portfolio filter, contact badge ("Mining only"),
Receive notifications.
i18n: 17 new keys in all 8 languages, 12 dead keys removed, CJK subset
rebuilt. Tests: recipient classification, translation completeness.
UI sweep: new "send-mining-recipient" target.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+17
-12
@@ -25,6 +25,7 @@
|
||||
"about_website": "Sitio Web",
|
||||
"acrylic": "Acrílico",
|
||||
"add": "Agregar",
|
||||
"addr_type_mining": "Minería",
|
||||
"address": "Dirección",
|
||||
"address_book_add": "Agregar Dirección",
|
||||
"address_book_add_new": "Agregar Nueva",
|
||||
@@ -172,21 +173,20 @@
|
||||
"balance_history_collecting": "Historial de saldo — recopilando datos...",
|
||||
"balance_layout": "Diseño de Saldo",
|
||||
"balance_layout_switched": "Diseño: %s",
|
||||
"balance_mining_fmt": "Recompensas de minería: %.8f",
|
||||
"balance_mining_rate": "Minando %s",
|
||||
"balance_shielded_fmt": "Protegido: %.8f",
|
||||
"balance_syncing_pct": "Sincronizando %.1f%%",
|
||||
"balance_transparent_fmt": "Transparente: %.8f",
|
||||
"baltab_market": "Mercado",
|
||||
"baltab_market_price_4dp": "Mercado: $%.4f",
|
||||
"baltab_market_price_8dp": "Mercado: $%.8f",
|
||||
"baltab_mining_addresses_count": "%d direcciones de minería",
|
||||
"baltab_mining_amount": "Recompensas de minería %.8f",
|
||||
"baltab_pct_change_24h": "%s%.1f%% 24h",
|
||||
"baltab_pct_of_total_zaddr": "%.0f%% del total · %d Z-addr",
|
||||
"baltab_shielded": "Blindado",
|
||||
"baltab_shielded_amount": "Blindado %.8f",
|
||||
"baltab_t_addresses_count": "%d T-addresses",
|
||||
"baltab_total_balance": "Saldo total",
|
||||
"baltab_transparent": "Transparente",
|
||||
"baltab_transparent_amount": "Transparente %.8f",
|
||||
"ban": "Bloquear",
|
||||
"banned_peers": "Nodos Bloqueados",
|
||||
"block": "Bloque",
|
||||
@@ -511,7 +511,7 @@
|
||||
"contact_avatar_image_hint": "La imagen se copia en la app para que siga disponible si el original se mueve.",
|
||||
"contact_avatar_remove": "Quitar",
|
||||
"contact_avatar_shielded": "Blindada",
|
||||
"contact_avatar_transparent": "Transparente",
|
||||
"contact_chip_mining": "Solo minería",
|
||||
"contact_global": "Mostrar en todas las carteras (contacto global)",
|
||||
"contact_global_badge_tt": "Contacto global — visible en todas las carteras",
|
||||
"contact_global_tt": "Activado: este contacto permanece visible sin importar qué cartera cargues. Desactivado: pertenece solo a la cartera actual.",
|
||||
@@ -707,8 +707,8 @@
|
||||
"export_tx_success": "Transacciones exportadas exitosamente",
|
||||
"export_tx_title": "Exportar Transacciones a CSV",
|
||||
"export_viewing_key": "Exportar Clave de Vista",
|
||||
"failed_create_mining_address": "No se pudo crear la dirección de minería",
|
||||
"failed_create_shielded": "Error al crear dirección protegida",
|
||||
"failed_create_transparent": "Error al crear dirección transparente",
|
||||
"faq": "Preguntas frecuentes",
|
||||
"faq_d_mgmt_1_a": "El nodo integrado se inicia automáticamente con la cartera y se detiene cuando corresponde, así que normalmente no necesitas administrarlo a mano. Los controles avanzados (incluido reiniciar el daemon) están en Ajustes > Nodo y seguridad.",
|
||||
"faq_d_mgmt_1_q": "¿Cómo inicio o detengo el nodo?",
|
||||
@@ -1226,6 +1226,7 @@
|
||||
"miner_fee": "Tarifa de minero",
|
||||
"mining": "Minería",
|
||||
"mining_active": "Activo",
|
||||
"mining_address": "Dirección de minería",
|
||||
"mining_address_copied": "Dirección de minería copiada",
|
||||
"mining_all_time": "Todo el Tiempo",
|
||||
"mining_already_saved": "URL del pool ya guardada",
|
||||
@@ -1239,6 +1240,8 @@
|
||||
"mining_benchmark_testing": "Probando",
|
||||
"mining_benchmark_tooltip": "Encontrar el número óptimo de hilos para esta CPU",
|
||||
"mining_block_copied": "Hash de bloque copiado",
|
||||
"mining_card_click_to_shield": "Haz clic para blindar ahora las recompensas maduras.",
|
||||
"mining_card_tooltip": "Las recompensas de minería en solitario llegan a tus direcciones de minería (transparentes, R…). Esas direcciones no pueden recibir pagos. Las recompensas se blindan automáticamente cuando maduran.",
|
||||
"mining_chart_1m_ago": "hace 1m",
|
||||
"mining_chart_5m_ago": "hace 5m",
|
||||
"mining_chart_now": "Ahora",
|
||||
@@ -1283,6 +1286,7 @@
|
||||
"mining_payout_address": "Dirección de Pago",
|
||||
"mining_payout_foreign": "⚠ Esta dirección de pago no está en tu cartera actual — las recompensas minadas irían a otra cartera. Actualízala si cambiaste de cartera.",
|
||||
"mining_payout_invalid": "No es una dirección DragonX válida — corrígela antes de empezar, o se pierden las recompensas de minería.",
|
||||
"mining_payout_needs_shielded": "Los pools pagan con transacciones normales, que en DragonX no pueden llegar a una dirección de minería (transparente, R…). Usa una dirección blindada (empieza por zs) como dirección de pago.",
|
||||
"mining_payout_tooltip": "Dirección para recibir recompensas de minería",
|
||||
"mining_pool": "Pool",
|
||||
"mining_pool_fee": "Comisión",
|
||||
@@ -1295,6 +1299,8 @@
|
||||
"mining_refresh": "Actualizar",
|
||||
"mining_remove": "Eliminar",
|
||||
"mining_reset_defaults": "Restablecer Valores",
|
||||
"mining_rewards": "Recompensas de minería",
|
||||
"mining_rewards_unshielded": "Aún sin blindar",
|
||||
"mining_save_payout_address": "Guardar dirección de pago",
|
||||
"mining_save_pool_url": "Guardar URL del pool",
|
||||
"mining_saved_addresses": "Direcciones Guardadas:",
|
||||
@@ -1328,10 +1334,10 @@
|
||||
"network_fee": "COMISIÓN DE RED",
|
||||
"network_hashrate": "Tasa de Hash de la Red",
|
||||
"new": "+ Nuevo",
|
||||
"new_mining_address": "Nueva dirección de minería",
|
||||
"new_mining_address_created": "Nueva dirección de minería creada",
|
||||
"new_shielded_created": "Nueva dirección protegida creada",
|
||||
"new_t_address": "Nueva Dirección T",
|
||||
"new_t_transparent": "Nueva dirección t (Transparente)",
|
||||
"new_transparent_created": "Nueva dirección transparente creada",
|
||||
"new_z_address": "Nueva Dirección Z",
|
||||
"new_z_shielded": "Nueva dirección z (Blindada)",
|
||||
"no_addresses": "No se encontraron direcciones. Cree una usando los botones de arriba.",
|
||||
@@ -1696,6 +1702,8 @@
|
||||
"send_from_this_address": "Enviar desde esta dirección",
|
||||
"send_go_to_receive": "Ir a Recibir",
|
||||
"send_keep": "Mantener",
|
||||
"send_mining_addr_blocked": "Esta es una dirección de minería (transparente). En DragonX solo pueden recibir recompensas de minería; la red rechaza los pagos a ellas. Pide al destinatario una dirección blindada (empieza por zs).",
|
||||
"send_mining_addr_short": "Dirección de minería: no puede recibir pagos",
|
||||
"send_network_fee": "COMISIÓN DE RED",
|
||||
"send_no_balance": "Sin saldo",
|
||||
"send_no_recent": "No hay envíos recientes",
|
||||
@@ -1723,7 +1731,6 @@
|
||||
"send_txid_copied": "TxID copiado al portapapeles",
|
||||
"send_txid_label": "TxID: %s",
|
||||
"send_valid_shielded": "Dirección protegida válida",
|
||||
"send_valid_transparent": "Dirección transparente válida",
|
||||
"send_wallet_empty": "Tu cartera está vacía",
|
||||
"send_yes_clear": "Sí, Limpiar",
|
||||
"sender_balance": "Remitente: %.8f → %.8f DRGX",
|
||||
@@ -1929,7 +1936,6 @@
|
||||
"switch_stopnode_title": "¿Detener el nodo en ejecución?",
|
||||
"switch_stopnode_warn": "Ya hay un nodo en ejecución que esta cartera no inició.",
|
||||
"syncing": "Sincronizando...",
|
||||
"t_address": "Dirección T",
|
||||
"t_addresses": "Direcciones T",
|
||||
"test_connection": "Probar",
|
||||
"theme": "Tema",
|
||||
@@ -1964,8 +1970,6 @@
|
||||
"transfer_sent": "Transferencia Enviada",
|
||||
"transfer_sent_desc": "Su transferencia ha sido enviada a la red.",
|
||||
"transfer_to": "Transferir a:",
|
||||
"transparent": "Transparente",
|
||||
"transparent_address": "Dirección Transparente",
|
||||
"try_again": "Reintentar",
|
||||
"tt_addr_url": "URL base para ver direcciones en un explorador de bloques",
|
||||
"tt_address_book": "Administrar direcciones guardadas para envío rápido",
|
||||
@@ -2037,6 +2041,7 @@
|
||||
"tt_low_spec": "Desactivar todos los efectos visuales pesados\\nAtajo: Ctrl+Shift+Down",
|
||||
"tt_merge": "Consolidar múltiples UTXOs en una dirección",
|
||||
"tt_mine_idle": "Iniciar minería automáticamente cuando el\\nsistema esté inactivo (sin entrada de teclado/ratón)",
|
||||
"tt_new_mining_address": "Crea una dirección transparente (R…) para recompensas de minería en solitario. No puede recibir pagos; para eso comparte una dirección blindada.",
|
||||
"tt_noise": "Intensidad de textura granulada (0% = apagado, 100% = máximo)",
|
||||
"tt_open_app_dir": "Abrir la carpeta de ObsidianDragon (configuración, temas, registros) en el explorador de archivos",
|
||||
"tt_open_data_dir": "Abre en el gestor de archivos la carpeta con los datos de tu cartera y de la blockchain",
|
||||
|
||||
Reference in New Issue
Block a user