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:
@@ -25,6 +25,176 @@ def load_english_keys():
|
||||
|
||||
# All translations for the 158 missing keys
|
||||
TRANSLATIONS = {
|
||||
"send_mining_addr_short": {
|
||||
"de": "Mining-Adresse – kann keine Zahlungen empfangen",
|
||||
"es": "Dirección de minería: no puede recibir pagos",
|
||||
"fr": "Adresse de minage — ne peut pas recevoir de paiements",
|
||||
"pt": "Endereço de mineração — não pode receber pagamentos",
|
||||
"ru": "Адрес для майнинга — не принимает платежи",
|
||||
"zh": "挖矿地址——无法接收付款",
|
||||
"ja": "マイニングアドレス — 支払いを受け取れません",
|
||||
"ko": "채굴 주소 — 결제를 받을 수 없음",
|
||||
},
|
||||
"send_mining_addr_blocked": {
|
||||
"de": "Dies ist eine Mining-Adresse (transparent). Bei DragonX können solche Adressen nur Mining-Belohnungen empfangen – das Netzwerk lehnt Zahlungen an sie ab. Bitten Sie den Empfänger um eine abgeschirmte Adresse (sie beginnt mit zs).",
|
||||
"es": "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).",
|
||||
"fr": "Ceci est une adresse de minage (transparente). Sur DragonX, elles ne peuvent recevoir que des récompenses de minage — le réseau refuse les paiements vers elles. Demandez au destinataire une adresse blindée (elle commence par zs).",
|
||||
"pt": "Este é um endereço de mineração (transparente). No DragonX eles só podem receber recompensas de mineração — a rede rejeita pagamentos para eles. Peça ao destinatário um endereço blindado (começa com zs).",
|
||||
"ru": "Это адрес для майнинга (прозрачный). В DragonX такие адреса могут получать только награды за майнинг — сеть отклоняет платежи на них. Попросите у получателя экранированный адрес (начинается с zs).",
|
||||
"zh": "这是一个挖矿(透明)地址。在 DragonX 上,这类地址只能接收挖矿奖励——网络会拒绝向其付款。请向收款人索取屏蔽地址(以 zs 开头)。",
|
||||
"ja": "これはマイニング(透明)アドレスです。DragonX ではこのアドレスはマイニング報酬しか受け取れず、ネットワークはこのアドレスへの支払いを拒否します。受取人にシールドアドレス(zs で始まる)を依頼してください。",
|
||||
"ko": "채굴(투명) 주소입니다. DragonX에서 이런 주소는 채굴 보상만 받을 수 있으며, 네트워크가 이 주소로의 결제를 거부합니다. 받는 사람에게 차폐 주소(zs로 시작)를 요청하세요.",
|
||||
},
|
||||
"mining_payout_needs_shielded": {
|
||||
"de": "Pools zahlen mit gewöhnlichen Transaktionen aus, die bei DragonX keine Mining-Adresse (transparent, R…) erreichen können. Verwenden Sie eine abgeschirmte Adresse (sie beginnt mit zs) als Auszahlungsadresse.",
|
||||
"es": "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.",
|
||||
"fr": "Les pools paient avec des transactions ordinaires, qui ne peuvent pas atteindre une adresse de minage (transparente, R…) sur DragonX. Utilisez une adresse blindée (elle commence par zs) comme adresse de paiement.",
|
||||
"pt": "Os pools pagam com transações comuns, que no DragonX não conseguem chegar a um endereço de mineração (transparente, R…). Use um endereço blindado (começa com zs) como endereço de pagamento.",
|
||||
"ru": "Пулы выплачивают обычными транзакциями, которые в DragonX не могут дойти до адреса для майнинга (прозрачного, R…). Укажите экранированный адрес (начинается с zs) как адрес для выплат.",
|
||||
"zh": "矿池使用普通交易付款,而在 DragonX 上普通交易无法到达挖矿(透明,R…)地址。请使用屏蔽地址(以 zs 开头)作为收款地址。",
|
||||
"ja": "プールは通常のトランザクションで支払いますが、DragonX ではそれがマイニング(透明、R…)アドレスに届きません。支払い先にはシールドアドレス(zs で始まる)を使用してください。",
|
||||
"ko": "풀은 일반 트랜잭션으로 지급하는데, DragonX에서는 이것이 채굴(투명, R…) 주소에 도달할 수 없습니다. 지급 주소로 차폐 주소(zs로 시작)를 사용하세요.",
|
||||
},
|
||||
"new_mining_address": {
|
||||
"de": "Neue Mining-Adresse",
|
||||
"es": "Nueva dirección de minería",
|
||||
"fr": "Nouvelle adresse de minage",
|
||||
"pt": "Novo endereço de mineração",
|
||||
"ru": "Новый адрес для майнинга",
|
||||
"zh": "新建挖矿地址",
|
||||
"ja": "新しいマイニングアドレス",
|
||||
"ko": "새 채굴 주소",
|
||||
},
|
||||
"tt_new_mining_address": {
|
||||
"de": "Erstellt eine transparente Adresse (R…) für Solo-Mining-Belohnungen. Sie kann keine Zahlungen empfangen – teilen Sie dafür eine abgeschirmte Adresse.",
|
||||
"es": "Crea una dirección transparente (R…) para recompensas de minería en solitario. No puede recibir pagos; para eso comparte una dirección blindada.",
|
||||
"fr": "Crée une adresse transparente (R…) pour les récompenses de minage en solo. Elle ne peut pas recevoir de paiements — partagez une adresse blindée pour cela.",
|
||||
"pt": "Cria um endereço transparente (R…) para recompensas de mineração solo. Ele não pode receber pagamentos — compartilhe um endereço blindado para isso.",
|
||||
"ru": "Создаёт прозрачный адрес (R…) для наград за соло-майнинг. Он не принимает платежи — для них сообщайте экранированный адрес.",
|
||||
"zh": "创建一个用于单人挖矿奖励的透明(R…)地址。它无法接收付款——收款请提供屏蔽地址。",
|
||||
"ja": "ソロマイニング報酬用の透明(R…)アドレスを作成します。支払いは受け取れません。支払いにはシールドアドレスを共有してください。",
|
||||
"ko": "솔로 채굴 보상용 투명(R…) 주소를 만듭니다. 결제는 받을 수 없으니, 결제용으로는 차폐 주소를 공유하세요.",
|
||||
},
|
||||
"mining_address": {
|
||||
"de": "Mining-Adresse",
|
||||
"es": "Dirección de minería",
|
||||
"fr": "Adresse de minage",
|
||||
"pt": "Endereço de mineração",
|
||||
"ru": "Адрес для майнинга",
|
||||
"zh": "挖矿地址",
|
||||
"ja": "マイニングアドレス",
|
||||
"ko": "채굴 주소",
|
||||
},
|
||||
"addr_type_mining": {
|
||||
"de": "Mining",
|
||||
"es": "Minería",
|
||||
"fr": "Minage",
|
||||
"pt": "Mineração",
|
||||
"ru": "Майнинг",
|
||||
"zh": "挖矿",
|
||||
"ja": "マイニング",
|
||||
"ko": "채굴",
|
||||
},
|
||||
"mining_rewards": {
|
||||
"de": "Mining-Belohnungen",
|
||||
"es": "Recompensas de minería",
|
||||
"fr": "Récompenses de minage",
|
||||
"pt": "Recompensas de mineração",
|
||||
"ru": "Награды за майнинг",
|
||||
"zh": "挖矿奖励",
|
||||
"ja": "マイニング報酬",
|
||||
"ko": "채굴 보상",
|
||||
},
|
||||
"mining_rewards_unshielded": {
|
||||
"de": "Noch nicht abgeschirmt",
|
||||
"es": "Aún sin blindar",
|
||||
"fr": "Pas encore blindées",
|
||||
"pt": "Ainda não blindadas",
|
||||
"ru": "Ещё не экранированы",
|
||||
"zh": "尚未屏蔽",
|
||||
"ja": "未シールド",
|
||||
"ko": "아직 차폐되지 않음",
|
||||
},
|
||||
"baltab_mining_addresses_count": {
|
||||
"de": "%d Mining-Adressen",
|
||||
"es": "%d direcciones de minería",
|
||||
"fr": "%d adresses de minage",
|
||||
"pt": "%d endereços de mineração",
|
||||
"ru": "Адресов для майнинга: %d",
|
||||
"zh": "%d 个挖矿地址",
|
||||
"ja": "マイニングアドレス %d 件",
|
||||
"ko": "채굴 주소 %d개",
|
||||
},
|
||||
"baltab_mining_amount": {
|
||||
"de": "Mining-Belohnungen %.8f",
|
||||
"es": "Recompensas de minería %.8f",
|
||||
"fr": "Récompenses de minage %.8f",
|
||||
"pt": "Recompensas de mineração %.8f",
|
||||
"ru": "Награды за майнинг %.8f",
|
||||
"zh": "挖矿奖励 %.8f",
|
||||
"ja": "マイニング報酬 %.8f",
|
||||
"ko": "채굴 보상 %.8f",
|
||||
},
|
||||
"balance_mining_fmt": {
|
||||
"de": "Mining-Belohnungen: %.8f",
|
||||
"es": "Recompensas de minería: %.8f",
|
||||
"fr": "Récompenses de minage : %.8f",
|
||||
"pt": "Recompensas de mineração: %.8f",
|
||||
"ru": "Награды за майнинг: %.8f",
|
||||
"zh": "挖矿奖励:%.8f",
|
||||
"ja": "マイニング報酬:%.8f",
|
||||
"ko": "채굴 보상: %.8f",
|
||||
},
|
||||
"mining_card_tooltip": {
|
||||
"de": "Solo-Mining-Belohnungen gehen an Ihre Mining-Adressen (transparent, R…). Diese Adressen können keine Zahlungen empfangen. Belohnungen werden automatisch abgeschirmt, sobald sie gereift sind.",
|
||||
"es": "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.",
|
||||
"fr": "Les récompenses de minage en solo arrivent sur vos adresses de minage (transparentes, R…). Ces adresses ne peuvent pas recevoir de paiements. Les récompenses sont blindées automatiquement une fois arrivées à maturité.",
|
||||
"pt": "As recompensas de mineração solo chegam aos seus endereços de mineração (transparentes, R…). Esses endereços não podem receber pagamentos. As recompensas são blindadas automaticamente quando amadurecem.",
|
||||
"ru": "Награды за соло-майнинг поступают на ваши адреса для майнинга (прозрачные, R…). Эти адреса не принимают платежи. Награды экранируются автоматически, когда созревают.",
|
||||
"zh": "单人挖矿奖励会发送到您的挖矿(透明,R…)地址。这些地址无法接收付款。奖励成熟后会自动屏蔽。",
|
||||
"ja": "ソロマイニング報酬はマイニング(透明、R…)アドレスに届きます。これらのアドレスは支払いを受け取れません。報酬は成熟すると自動的にシールドされます。",
|
||||
"ko": "솔로 채굴 보상은 채굴(투명, R…) 주소로 들어옵니다. 이 주소는 결제를 받을 수 없습니다. 보상은 성숙하면 자동으로 차폐됩니다.",
|
||||
},
|
||||
"mining_card_click_to_shield": {
|
||||
"de": "Klicken, um gereifte Belohnungen jetzt abzuschirmen.",
|
||||
"es": "Haz clic para blindar ahora las recompensas maduras.",
|
||||
"fr": "Cliquez pour blinder dès maintenant les récompenses arrivées à maturité.",
|
||||
"pt": "Clique para blindar agora as recompensas amadurecidas.",
|
||||
"ru": "Нажмите, чтобы экранировать созревшие награды сейчас.",
|
||||
"zh": "点击立即屏蔽已成熟的奖励。",
|
||||
"ja": "クリックすると成熟した報酬を今すぐシールドします。",
|
||||
"ko": "클릭하면 성숙한 보상을 지금 차폐합니다.",
|
||||
},
|
||||
"contact_chip_mining": {
|
||||
"de": "Nur Mining",
|
||||
"es": "Solo minería",
|
||||
"fr": "Minage seul",
|
||||
"pt": "Só mineração",
|
||||
"ru": "Только майнинг",
|
||||
"zh": "仅限挖矿",
|
||||
"ja": "マイニング専用",
|
||||
"ko": "채굴 전용",
|
||||
},
|
||||
"failed_create_mining_address": {
|
||||
"de": "Mining-Adresse konnte nicht erstellt werden",
|
||||
"es": "No se pudo crear la dirección de minería",
|
||||
"fr": "Impossible de créer l'adresse de minage",
|
||||
"pt": "Falha ao criar o endereço de mineração",
|
||||
"ru": "Не удалось создать адрес для майнинга",
|
||||
"zh": "创建挖矿地址失败",
|
||||
"ja": "マイニングアドレスを作成できませんでした",
|
||||
"ko": "채굴 주소를 만들지 못했습니다",
|
||||
},
|
||||
"new_mining_address_created": {
|
||||
"de": "Neue Mining-Adresse erstellt",
|
||||
"es": "Nueva dirección de minería creada",
|
||||
"fr": "Nouvelle adresse de minage créée",
|
||||
"pt": "Novo endereço de mineração criado",
|
||||
"ru": "Новый адрес для майнинга создан",
|
||||
"zh": "已创建新的挖矿地址",
|
||||
"ja": "新しいマイニングアドレスを作成しました",
|
||||
"ko": "새 채굴 주소를 만들었습니다",
|
||||
},
|
||||
"appx_node_busy_try_later": {
|
||||
"de": "Der Node ist mit einer langen Aufgabe beschäftigt (etwa dem Neuaufbau der Note-Witnesses). Versuchen Sie es erneut, wenn sie abgeschlossen ist; ein Stoppen jetzt könnte diese Arbeit von vorn beginnen lassen.",
|
||||
"es": "El nodo está ocupado terminando una tarea larga (como reconstruir los testigos de notas). Vuelve a intentarlo cuando termine; detenerlo ahora podría hacer que empiece ese trabajo de nuevo.",
|
||||
|
||||
Reference in New Issue
Block a user