diff --git a/res/zec_qt_wallet_de.ts b/res/zec_qt_wallet_de.ts
index 6aeed06..6e2f0df 100644
--- a/res/zec_qt_wallet_de.ts
+++ b/res/zec_qt_wallet_de.ts
@@ -147,8 +147,8 @@
-
-
+
+ Nachricht hinzufügen
@@ -288,7 +288,7 @@
-
+ Privaten Key exportieren
@@ -327,7 +327,7 @@
-
+ Lade...
@@ -520,7 +520,7 @@
-
+ Exportiere Transaktionen
@@ -535,22 +535,22 @@
Ctrl+M
-
+ Die Tor konfiguration ist nur möglich, wenn der integrierte hushd client läuft.
-
+ Sie benutzen einen externen hushd clienten. Bitte starten Sie hushd mit folgendem Parameter neu: -rescan
-
+ Sie benutzen einen externen hushd clienten. Bitte starten Sie hushd mit folgendem Parameter neu: -reindex
-
+ Tor aktivieren
@@ -559,7 +559,7 @@
Die Verbindung über Tor wurde aktiviert. Um Tor zu benutzen starten Sie bitte Silentdragon neu.
-
+ Tor deaktivieren
@@ -580,17 +580,17 @@
um Silentdragon zu unterstützen
-
+ Sie befinden sich im Testnetz
-
+ Sie benötigen eine sichere Adresse, mit verfügbarem Guthaben
-
+ Erstelle Transaktion:
@@ -600,7 +600,7 @@
Die Keys wurden erfolgreich importiert. Es dauert einige Minuten um die Blockchain zu scannen. Bis dahin ist die Funktion von Silentdragon eingeschränkt
-
+ Scan beendet
@@ -633,226 +633,226 @@
Die Keys werden in das verbundene hushd Node importiert
-
+ Die Verbindung über Tor wurde aktiviert. Um Tor zu benutzen starten Sie bitte Silentdragon neu.
-
+ Die Verbindung über Tor wurde deaktiviert. Um die Verbingung zu Tor endgültig zu beenden, starten Sie bitte Silentdragon neu.
-
+ Silentdragon muss für den Rescan/Reindex neu gestartet werden. Silentdragon wird nun schließen, bitte starten Sie Silentdragon neu um fortzufahren
-
+ SilentDragon Neustart
-
+ Rückmeldung zu Silentdragon oder Hush
-
+ Sende Duke ein anonymes Feedback über
-
+ oder Silentdragon
-
+ Geben Sie die Adresse ein, die überprüft werden soll
-
+ Sichtbare oder verborgene Adresse:
-
+ Füge HUSH URI ein
-
+ Fehler bei der Bezahl HUSH URI
-
+ Die URI sollte im folgendem Format sein: 'hush:<Adresse>?Betrag=x&Nachricht=y
-
+ Bitte füge deinen Privat key, für eine sichere oder transparente Adresse ein. Ein Key pro Zeile
-
+ Die Keys werden in das verbundene hushd Node importiert
-
+ Die Keys wurden erfolgreich importiert. Es dauert einige Minuten um die Blockchain zu scannen. Bis dahin ist die Funktion von Silentdragon eingeschränkt
-
+ Fehler
-
+ Fehler beim exportieren der Transaktion. Die Datei wurde nicht gespeichert.
-
+ Fehlende Wallet.dat
-
+ Ich kann die wallet.dat auf Ihrem Computer nicht finden
-
+ Die Sicherung geht nur auf dem System, wo hushd aktiv läuft
-
+ Sicherung der wallet.dat
-
+ Konnte keine Sicherung erstellen
-
+ Ich konnte die wallet.dat nicht sichern
-
+ Sie müssen die Sicherung manuell durchführen
-
+ Dies sind alle private Keys, für jede Adresse ihres Wallets
-
+ Private Key für
-
+ Datei speichern
-
+ Kann Datei nicht öffnen
-
-
+
+ Adresse kopieren
-
-
-
+
+
+ In die Zwischenablage kopiert
-
+ Private Key anzeigen
-
+ Guthaben auf sichere Adresse (Sapling) verschieben
-
-
+
+ Im Block explorer anzeigen
-
+ Alle Adressen anschauen
-
+ Adresse konvertieren
-
+ Zu Sapling übertragen
-
+ Kopiere Transaktions ID
-
+ Zahlungsaufforderung ansehen
-
+ Nachricht ansehen
-
+ Antworten an
-
+ Neue transparente Adresse erstellen
-
+ Adresse kopieren
-
+ Diese Adresse wurde schon einmal benutzt
-
+ Adresse wird nicht genutzt
@@ -1239,28 +1239,28 @@ If all else fails, please run hushd manually.
Es gab einen Fehler bei dem versuch Hushd zu verbinden. Der Fehler war
-
+ Transaktion mit der ID
-
+ gescheitert. Der Fehler war
-
+ gescheitert
-
+
@@ -1354,7 +1354,7 @@ Please set the host/port and user/password in the Edit->Settings menu.
-
+
@@ -1445,7 +1445,7 @@ Please set the host/port and user/password in the Edit->Settings menu.Lösche Beschriftung
-
+ Transaktion übermittelt (Rechtsklick zum kopieren der ID) Transaktions ID:
@@ -1701,26 +1701,51 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Problemlösung
-
+ Reindex
-
+ Ich überprüfe nun die Blockchain auf fehlende Transaktionen, und werde Änderungen zu Ihrem Wallet hinzufügen. Dies kann einige Stunden dauern. Sie müssen Silentdragon neu starten bevor dies ausgeführt werden kann.
-
+ Rescan
-
+ Stelle die Blockchain vom Genesis Block wieder her. Dies kann je nach verwendeter Hardware, mehrere Stunden bis Tage dauern. Sie müssen Silentdragon neustarten um fortzuführen.
diff --git a/res/zec_qt_wallet_es.ts b/res/zec_qt_wallet_es.ts
index a3d5236..926edca 100644
--- a/res/zec_qt_wallet_es.ts
+++ b/res/zec_qt_wallet_es.ts
@@ -147,8 +147,8 @@
-
-
+
+ Memo
@@ -278,7 +278,7 @@
-
+ Exportar Clave Privada
@@ -313,7 +313,7 @@
-
+ Cargando...
@@ -512,7 +512,7 @@
-
+ exportación de transacciones
@@ -527,37 +527,37 @@
Ctrl+M
-
+ La configuración de Tor solo está disponible cuando se ejecuta un silencio integrado.
-
+ Estás utilizando hushd externo. Reinicie hushd con -rescan
-
+ Estás utilizando hushd externo. Reinicie hushd con -rescan
-
+ Habilitar Tor
-
+ Se ha habilitado la conexión a través de Tor. Para usar esta función, debe reiniciar SilentDragon.
-
+ Inhabilitar Tor
-
+ Se ha deshabilitado la conexión a través de Tor. Para desconectarse por completo de Tor, debe reiniciar SilentDragon.
@@ -574,17 +574,17 @@
para apoyar SilentDragon
-
+ Estas en testnet, tu publicación no aparecerá en z-board.net
-
+ Necesitas una dirección Sapling con saldo disponible para publicar
-
+ Calculando Tx:
@@ -594,17 +594,17 @@
Las claves fueron importadas. Puede que se demore varios minutos en volver a escanear el blockchain. Hasta entonces, la funcionalidad puede ser limitada.
-
+ Importación de clave privada re-escaneada finalizada
-
+ SilentDragon necesita reiniciarse para volver a escanear / reindexar. SilentDragon ahora se cerrará, reinicie SilentDragon para continuar
-
+ reanudar SilentDragon
@@ -617,206 +617,206 @@
Las claves serán importadas en su nodo hushd conectado
-
+ Algunos comentarios sobre SilentDragon o Hush ...
-
+ Envíe a Duke comentarios privados y protegidos sobre
-
+ o SilentDragon
-
+ Ingrese la dirección para validar
-
+ Dirección transparente o blindada:
-
+ Pegar HUSH URI
-
+ Error al pagar HUSH URI
-
+ URI debe tener la forma 'hush:<addr>?amt=x&memo=y
-
+ Pegue sus claves privadas aquí, una por línea
-
+ Las claves se importarán a su nodo Hush conectado
-
+ Las claves se importarán a su nodo Hush conectado
-
+ Error
-
+ Error al exportar transacciones, el archivo no se guardó
-
+ Sin wallet.dat
-
+ No se pudo encontrar wallet.dat en esta computadora
-
+ Necesitas hacer una copia de seguridad de la computadora en la que se está ejecutando hushd
-
+ Respaldar wallet.dat
-
+ No se pudo hacer una copia de seguridad
-
+ No se pudo hacer copia de seguridad de wallet.dat
-
+ Necesitas hacer una copia de seguridad manualmente.
-
+ Estas son todas las claves privadas para todas las direcciones en tu billetera
-
+ Clave privada para
-
+ Guardar Archivo
-
+ No es posible abrir el archivo
-
-
+
+ Copiar dirección
-
-
-
+
+
+ Copiado al portapapeles
-
+ Obtener clave privada
-
+ Proteger saldo a Sapling
-
-
+
+ Ver en el explorador de bloques
-
+ Dirección Asset Espectador
-
+ Convertir dirección
-
+ Migrar a Sapling
-
+ Copiar txid
-
+ Ver solicitud de pago
-
+ Ver Memo
-
+ Responder a
-
+ Nuevo dirección t-Addr creada
-
+ Dirección de copia
-
+ La dirección ha sido utilizada previamente
-
+ Dirección no utilizada
@@ -1059,28 +1059,28 @@ doesn't look like a z-address
Hubo un error al conectar con hushd. El error fue
-
+ La transacción con id
-
+ falló. El error fue
-
+ Tx
-
+
@@ -1259,7 +1259,7 @@ Por favor, especificar el host/puerta y usario/contraseña en el menú Editar-&g
-
+
@@ -1321,7 +1321,7 @@ Si todo falla, por favor ejecutar hushd manualmente.
Hubo un error al enviar la transacción. El error fue:
-
+ Tx presentado (clic derecho para copiar) txid:
@@ -1652,26 +1652,51 @@ El saldo es insuficiente para una migración automática.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Solución de problemas
-
+ Reindex
-
+ Vuelva a escanear la cadena de bloques para detectar transacciones de billetera faltantes y para corregir el saldo de su billetera. Esto puede llevar varias horas. Debe reiniciar SilentDragon para que esto surta efecto
-
+ Reescanear
-
+ Reconstruya toda la cadena de bloques a partir del bloque de génesis, volviendo a escanear todos los archivos de bloque. Esto puede llevar varias horas o días, dependiendo de su hardware. Debe reiniciar SilentDragon para que esto surta efecto
diff --git a/res/zec_qt_wallet_fr.ts b/res/zec_qt_wallet_fr.ts
index 9d8e005..6d1ba04 100644
--- a/res/zec_qt_wallet_fr.ts
+++ b/res/zec_qt_wallet_fr.ts
@@ -147,8 +147,8 @@
-
-
+
+ Mémo
@@ -274,7 +274,7 @@
-
+ Exporter la clef privée
@@ -317,7 +317,7 @@
-
+ Chargement...
@@ -516,7 +516,7 @@
-
+ Exporter les transactions
@@ -540,37 +540,37 @@
Demander un paiement en HUSH
-
+ La configuration de Tor est disponible uniquement lors de l'exécution du processus hushd intégré.
-
+ Vous utilisez un hushd externe. Veuillez redémarrer hushd avec -rescan
-
+ Vous utilisez un hushd externe. Veuillez redémarrer hushd avec -reindex
-
+ Activer Tor
-
+ La connection via Tor est activée. Afin d'utiliser cette fonctionnalité, veuillez redémarer SilentDragon.
-
+ Désactiver Tor
-
+ La connection via Tor a été désactivée. Afin de complètement se déconnecter de Tor, vous devez redémarrer SilentDragon.
@@ -587,17 +587,17 @@
pour supporter SilentDragon
-
+ Vous êtes connecté au réseau de test. Votre message n'apparaîtra donc pas sur z-board.net
-
+ Vous avez besoin d'une adresse de type Sapling avec un solde suffisant pour pouvoir poster
-
+ Calcul de la transaction en cours:
@@ -607,17 +607,17 @@
Les clefs ont été importées. Cela peut prendre quelque minutes pour rescanner la blockchain. Durant cette période, les fonctionnalités peuvent être limitées
-
+ Rescan de l'import de la clef privée achevé
-
+ SilentDragon doit redémarrer pour rescan/reindex. SilentDragon va maintenant fermer, veuillez redémarrer SilentDragon pour continuer
-
+ Redémarrer SilentDragon
@@ -626,12 +626,12 @@
Erreur lors du payement du URI HUSH
-
+ Le format URI doit être comme ceci: 'hush:<addr>?amt=x&memo=y
-
+ Coller le URI HUSH
@@ -652,196 +652,196 @@
Les clef seront importées dans votre noeud hushd connecté
-
+ Quelques commentaires sur SilentDragon ou Hush ...
-
+ Envoyez à Duke des commentaires privés et protégés sur
-
+ ou SilentDragon
-
+ Entrez l'adresse pour valider
-
+ Adresse transparente ou privée:
-
+ Erreur lors du paiement de l'URI
-
+ Veuillez coller vos clés privées ici, une par ligne
-
+ Les clés seront importées dans votre nœud Hush connecté.
-
+
-
+ Erreur
-
+ Erreur lors de l'exportation des transactions. Le fichier n'a pas été sauvegardé.
-
+ Pas de fichier "wallet.dat"
-
+ Impossible de trouver le fichier "wallet.dat" sur cet ordinateur
-
+ Vous devez effectuer la sauvegarde depuis la machine sur laquelle hushd est en cours d'exécution
-
+ Sauvegarder wallet.dat
-
+ La sauvegarde n'a pas pu être effectuée
-
+ Impossible de sauvegarder le fichier "wallet.dat".
-
+ Vous devez le sauvegarder manuellement.
-
+ Ce sont toutes les clés privées pour toutes les adresses de votre portefeuille
-
+ Clef privée pour
-
+ Sauvegarder le fichier
-
+ Impossible d'ouvrir le fichier
-
-
+
+ Copier l'adresse
-
-
-
+
+
+ Copié dans le presse-papier
-
+ Obtenir la clef privée
-
+ Rendre privé le solde vers Sapling
-
-
+
+ Voir dans l'explorateur de block
-
+ Addresse Asset Viewer
-
+ Adresse convertie
-
+ Migrer vers Sapling
-
+ Copier l'ID de transaction
-
+ Afficher la demande de paiement
-
+ Voir le mémo
-
+ Répondre à
-
+ Créée une nouvelle t-Adresse
-
+ Copier l'adresse
-
+ L'adresse a été utilisée précédemment.
-
+ L'adresse est inutilisée.
@@ -1220,28 +1220,28 @@ If all else fails, please run hushd manually.
Une erreur est survenue lors de la connection à hushd. L'erreur est
-
+ La transaction avec ID
-
+ a échoué. L'erreur était
-
+ a échoué
-
+
@@ -1335,7 +1335,7 @@ Veuillez configurer l'hôte/port et utilisateur/mot de passe dans le menu E
-
+
@@ -1426,7 +1426,7 @@ Veuillez configurer l'hôte/port et utilisateur/mot de passe dans le menu E
Effacer l'étiquette
-
+ Tx soumise. (clic droit pour copier) txid:
@@ -1682,26 +1682,51 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Anomalies
-
+ Reindex
-
+ Rescanner la blockchain pour détecter toute transaction de portefeuille manquante et corriger le solde de votre portefeuille. Cela peut prendre plusieurs heures. Vous devez redémarrer SilentDragon pour que cela prenne effet
-
+ Rescan
-
+ Reconstruisez l'intégralité de la blockchain à partir du bloc genesis en analysant à nouveau tous les fichiers de bloc Cela peut prendre plusieurs heures à plusieurs jours, selon votre matériel. Vous devez redémarrer SilentDragon pour que cela prenne effet
diff --git a/res/zec_qt_wallet_it.ts b/res/zec_qt_wallet_it.ts
index f3b26b0..4a485fa 100644
--- a/res/zec_qt_wallet_it.ts
+++ b/res/zec_qt_wallet_it.ts
@@ -151,8 +151,8 @@
-
-
+
+ Memo
@@ -287,7 +287,7 @@
-
+ Esporta la chiave privata
@@ -322,7 +322,7 @@
-
+ Caricamento...
@@ -519,7 +519,7 @@
-
+ Transazioni di esportazione
@@ -546,17 +546,17 @@
per supportare SilentDragon
-
+ Sei nella testnet, i tuoi post non appariranno realmente su z-board.net
-
+ Hai bisogno di un indirizzo Sapling con saldo per postare
-
+ Computazione Transazione:
@@ -566,52 +566,52 @@
Le chiavi sono state importate. Potrebbero essere necessari alcuni minuti per eseguire nuovamente la scansione della blockchain. Fino ad allora, le funzionalità potrebbero essere limitate
-
+ L'importazione delle chiavi private è stata completata
-
+ La configurazione Tor è disponibile solo quando si esegue un hushd incorporato.
-
+ Stai usando un hushd esterno. Si prega di riavviare hushd con -rescan
-
+ Stai usando un hushd esterno. Si prega di riavviare hushd con -reindex
-
+ Abilita Tor
-
+ La connessione tramite Tor è stata abilitata. Per utilizzare questa funzione, è necessario riavviare SilentDragon.
-
+ Disabilita Tor
-
+ La connessione tramite Tor è stata disabilitata. Per disconnettersi completamente da Tor, è necessario riavviare SilentDragon.
-
+ SilentDragon deve essere riavviato per ripetere la scansione / reindicizzazione. SilentDragon ora si chiuderà, riavviare SilentDragon per continuare
-
+ Riavvia SilentDragon
@@ -625,206 +625,206 @@
Le chiavi saranno importate nel tuo nodo hushd
-
+ Alcuni feedback su SilentDragon o Hush ...
-
+ Invia a Duke un feedback privato e schermato
-
+ o SilentDragon
-
+ Inserisci un indirizzo per convalidare
-
+ Indirizzo trasparente o schermato:
-
+ Incolla URI HUSH
-
+ Errore nel pagamento dell'URI Hush
-
+ L'URI dovrebbe essere nella forma 'hush:<addr>?amt=x&memo=y
-
+ Incolla qui le tue chiavi private, una per riga
-
+ Le chiavi verranno importate nel nodo Hush collegato
-
+ Le chiavi sono state importate! Potrebbero essere necessari alcuni minuti per ripetere la scansione della blockchain. Fino ad allora, la funzionalità potrebbe essere limitata
-
+ Errore
-
+ Errore durante l'esportazione delle transazioni, il file non è stato salvato
-
+ Nessun wallet.dat
-
+ Impossibile trovare il wallet.dat su questo computer
-
+ È necessario eseguire il backup dalla macchina su cui hushd è in esecuzione
-
+ Backup wallet.dat
-
+ Impossibile eseguire il backup
-
+ Impossibile eseguire il backup del file wallet.dat.
-
+ Devi eseguire il backup manualmente.
-
+ Queste sono le chiavi private per tutti gli indirizzi nel tuo portafoglio
-
+ Chiave privata per
-
+ Salva File
-
+ Impossibile aprire il file
-
-
+
+ Copia indirizzo
-
-
-
+
+
+ Copiato negli appunti
-
+ Ottieni una chiave privata
-
+ Trasferisci il saldo su un indirizzo shielded Sapling
-
-
+
+ Guarda sul block-explorer
-
+ Addresses Asset Viewer
-
+ Converti indirizzo
-
+ Migra a Sapling
-
+ Copia txid
-
+ Visualizza richiesta di pagamento
-
+ Visualizza memo
-
+ Rispondi a
-
+ Crea nuovo t-Addr
-
+ Copia indirizzo
-
+ L'indirizzo è stato precedentemente utilizzato
-
+ L'indirizzo non è utilizzato
@@ -1195,28 +1195,28 @@ If all else fails, please run hushd manually.
Si è verificato un errore durante la connessione a hushd. L'errore era
-
+ La transazione con id
-
+ fallito. l'errore era
-
+ fallito
-
+
@@ -1313,7 +1313,7 @@ Impostare host/porta e utente/password nel menu Modifica-> Impostazioni.
-
+
@@ -1404,7 +1404,7 @@ Impostare host/porta e utente/password nel menu Modifica-> Impostazioni.elimina l'etichetta
-
+ Tx inviato (clic destro per copiare) txid:
@@ -1660,26 +1660,51 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Risoluzione dei problemi
-
+ Reindex
-
+ Riesegui la scansione della blockchain per eventuali transazioni di portafoglio mancanti e per correggere il saldo del tuo portafoglio. Questa operazione potrebbe richiedere diverse ore. È necessario riavviare SilentDragon affinché questo abbia effetto
-
+ Rescan
-
+ Ricostruisci l'intera blockchain dal blocco genesi, eseguendo nuovamente la scansione di tutti i file di blocco. Questo potrebbe richiedere diverse ore o giorni, a seconda dell'hardware. È necessario riavviare SilentDragon affinché questo abbia effetto
diff --git a/res/zec_qt_wallet_pt.ts b/res/zec_qt_wallet_pt.ts
index 430fa04..1843b7c 100644
--- a/res/zec_qt_wallet_pt.ts
+++ b/res/zec_qt_wallet_pt.ts
@@ -147,8 +147,8 @@
-
-
+
+ Anexar recado
@@ -278,7 +278,7 @@
-
+ Exportar Chave Privada
@@ -313,7 +313,7 @@
-
+ Carregando...
@@ -512,7 +512,7 @@
-
+ Transações de exportação
@@ -527,37 +527,37 @@
Ctrl+M
-
+ A configuração do Tor está disponível apenas ao executar um hushd incorporado.
-
+ Você está usando um hushd externo. Por favor, reinicie o hushd com -rescan
-
+ Você está usando um hushd externo. Por favor, reinicie o hushd com -reindex
-
+ Ativar Tor
-
+ A conexão através do Tor foi ativada. Para usar esse recurso, você precisa reiniciar o SilentDragon.
-
+ Desativar Tor
-
+ A conexão através do Tor foi desativada. Para se desconectar totalmente do Tor, é necessário reiniciar o SilentDragon.
@@ -574,17 +574,17 @@
para apoiar SilentDragon
-
+ Você está na testnet, seu post não aparecerá no z-board.net
-
+ Você precisa de um endereço sapling com saldo disponível para postar
-
+ Gerando Tx:
@@ -594,17 +594,17 @@
Chaves importadas. Pode demorar alguns minutos para re-escanear a blockchain. Até lá, funcionalidades poderão estar limitadas
-
+ Re-escan de chave privada completo
-
+ O SilentDragon precisa reiniciar para redigitalizar / reindexar. O SilentDragon agora será fechado. Reinicie o SilentDragon para continuar
-
+ Reinicie o SilentDragon
@@ -617,206 +617,206 @@
As chaves serão importadas em seu nó hushd conectado
-
+ Alguns comentários sobre SilentDragon ou Hush ...
-
+ Envie para Duke algum feedback privado e protegido sobre
-
+ ou SilentDragon
-
+ Digite o endereço para validar
-
+ Endereço transparente ou blindado:
-
+ Colar HUSH URI
-
+ Erro ao pagar o URI do Hush
-
+ O URI deve ter o formato
-
+ Cole suas chaves privadas aqui, uma por linha
-
+ As chaves serão importadas para o nó Hush conectado
-
+ As chaves foram importadas! Pode levar alguns minutos para verificar novamente o blockchain. Até lá, a funcionalidade pode ser limitada
-
+ Erro
-
+ Erro ao exportar transações, o arquivo não foi salvo
-
+ Nenhum wallet.data
-
+ Não foi localizado o wallet.dat nesse computador
-
+ Você precisar salvar a partir da máquina que hushd está rodando
-
+ Salvar wallet.dat
-
+ Não foi possível salvar
-
+ Não foi possível salvar o arquivo wallet.dat.
-
+ Você precisar salvá-lo manualmente.
-
+ YOUR_TRANSLATION_HERE
-
+ Chave privada para
-
+ Salvar Arquivo
-
+ Não foi possível abrir o arquivo
-
-
+
+ Copiar endereço
-
-
-
+
+
+ Copiado
-
+ Obter chave privada
-
+ Blindar saldo para Sapling
-
-
+
+ Ver no explorador de blocos
-
+ Endereço Asset Viewer
-
+ Converter Endereço
-
+ Migrar para Sapling
-
+ Copiar txid
-
+ Exibir solicitação de pagamento
-
+ Ver Recado
-
+ Responder a
-
+ Criar novo t-Addr
-
+ Copiar endereço
-
+ O endereço foi usado anteriormente
-
+ Endereço não utilizado
@@ -1182,28 +1182,28 @@ Se tudo mais falhar, execute o hushd manualmente.
Ocorreu um erro conectando ao hushd. O erro foi
-
+ A transação com id
-
+ falhou. O erro foi
-
+ falhou
-
+
@@ -1299,7 +1299,7 @@ Por favor, coloque o host/porta e usuário/senha no menu Editar>Preferências
-
+
@@ -1390,7 +1390,7 @@ Por favor, coloque o host/porta e usuário/senha no menu Editar>Preferências
Deletar etiqueta
-
+ Tx enviada (botão-direito para copiar) txid:
@@ -1646,26 +1646,51 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ Reindex
-
+ Analise novamente o blockchain em busca de transações ausentes na carteira e corrija seu saldo. Isso pode levar várias horas. Você precisa reiniciar o SilentDragon para que isso entre em vigor
-
+ Rescan
-
+ Reconstrua toda a blockchain a partir do bloco genesis, redigitalizando todos os arquivos do bloco. Isso pode levar várias horas a dias, dependendo do seu hardware. Você precisa reiniciar o SilentDragon para que isso entre em vigor
diff --git a/res/zec_qt_wallet_ru.ts b/res/zec_qt_wallet_ru.ts
index adc46a1..d7757bd 100644
--- a/res/zec_qt_wallet_ru.ts
+++ b/res/zec_qt_wallet_ru.ts
@@ -163,8 +163,8 @@
-
-
+
+ Метка
@@ -274,7 +274,7 @@
-
+ Экспорт приватного ключа
@@ -313,7 +313,7 @@
-
+ Загрузка...
@@ -518,7 +518,7 @@
-
+ Экспорт транзакций
@@ -551,47 +551,47 @@
Сообщить об ошибке...
-
+ Включить Tor
-
+ Соединение через Tor было включено. Чтобы использовать эту функцию, вам нужно перезапустить SilentDragon.
-
+ Отключить Tor
-
+ Соединение через Tor было отключено. Чтобы полностью отключиться от Tor, вам нужно перезапустить SilentDragon.
-
+
-
+
-
+
-
+
-
+ Вычисление Tx:
@@ -601,17 +601,17 @@
Ключи были импортированы. Повторное сканирование блокчейна может занять несколько минут. До тех пор функциональность может быть ограничена
-
+ Повторное сканирование приватного ключа завершено
-
+ SilentDragon необходимо перезапустить для повторного сканирования/переиндексации. Перезапустите SilentDragon, чтобы продолжить
-
+ Перезапуск SilentDragon
@@ -628,146 +628,146 @@
Ключи будут импортированы в ваш подключенный узел hushd
-
+
-
+
-
+
-
+
-
+
-
+
-
+ Ошибка
-
+ Ошибка экспорта транзакций, файл не был сохранен
-
+ Нет wallet.dat
-
+ Не удалось найти wallet.dat на этом компьютере
-
+ Вы должны сделать резервную копию с машины, на которой работает hushd
-
+ Сохранить wallet.dat
-
+ Не удалось сохранить
-
+ Не удалось сохранить файл wallet.dat
-
+ Вам нужно сделать резервную копию вручную.
-
+ Это все приватные ключи для всех адресов в вашем кошельке
-
+ Приватный ключ для
-
+ Сохранить файл
-
+ Невозможно открыть файл
-
-
+
+ Скопировать адрес
-
-
-
+
+
+ Скопировано в буфер обмена
-
+ Получить приватный ключ
-
+ Shield balance to Sapling
-
-
+
+ Посмотреть в проводнике блоков
-
+
-
+
-
+ Migrate to Sapling
-
+ Скопировать txid
@@ -784,17 +784,17 @@
Обновить
-
+ Конфигурация Tor доступна только при работе со встроенным hushd.
-
+ Вы используете внешний hushd. Пожалуйста, перезапустите hushd с -rescan
-
+ Вы используете внешний hushd. Пожалуйста, перезапустите hushd с -reindex
@@ -871,17 +871,17 @@
Отправить для OleksandrBlack благодарность за
-
+ или SilentDragon
-
+ Введите адрес для проверки
-
+ Прозрачный или экранированный адрес:
@@ -902,37 +902,37 @@
Это может занять несколько минут. Загрузка...
-
+ Посмотреть запрос на оплату
-
+ Посмотреть метку
-
+ Ответить на
-
+ Создать новый t-Addr (R)
-
+ Копировать адрес
-
+ Адрес был ранее использован
-
+ Адрес не используется
@@ -1338,28 +1338,28 @@ Please set the host/port and user/password in the Edit->Settings menu.не подтверждено
-
+ Транзакция с id
-
+ не удалось. Ошибка
-
+ ошибка
-
+
@@ -1434,7 +1434,7 @@ Please set the host/port and user/password in the Edit->Settings menu.
-
+
@@ -1521,7 +1521,7 @@ Please set the host/port and user/password in the Edit->Settings menu.Удалить метку
-
+ Tx представлен (кликните правой кнопкой мыши, чтобы скопировать) txid:
@@ -2009,26 +2009,51 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Исправление проблем
-
+ Reindex
-
+ Повторно сканирует блокчейн для любых пропущенных транзакций кошелька и исправляет баланс вашего кошелька. Это может занять несколько часов. Вам нужно перезапустить SilentDragon, чтобы это вступило в силу
-
+ Rescan
-
+ Перестраивает весь блокчейн из блока генезиса путем повторного сканирования всех файлов блоков. Это может занять несколько часов или дней, в зависимости от вашего оборудования. Вам нужно перезапустить SilentDragon, чтобы это вступило в силу
diff --git a/res/zec_qt_wallet_tr.qm b/res/zec_qt_wallet_tr.qm
index 42decd9..c084c02 100644
Binary files a/res/zec_qt_wallet_tr.qm and b/res/zec_qt_wallet_tr.qm differ
diff --git a/res/zec_qt_wallet_tr.ts b/res/zec_qt_wallet_tr.ts
index fef447d..a517b47 100644
--- a/res/zec_qt_wallet_tr.ts
+++ b/res/zec_qt_wallet_tr.ts
@@ -147,8 +147,8 @@
-
-
+
+ Memo
@@ -216,7 +216,7 @@
-
+ İşlemleri dışa aktar
@@ -289,7 +289,7 @@
-
+ Özel Anahtarı Dışarı Aktar
@@ -324,7 +324,7 @@
-
+ Yükleniyor...
@@ -540,17 +540,17 @@
ve SilentDragon'i destekle
-
+ Testnet'tesiniz, gönderiniz aslında z-board.net'te görünmeyecek
-
+ Göndermek için uygun bakiye ile bir sapling adres'i gerekir
-
+ İşlem Hesaplama:
@@ -560,7 +560,7 @@
Anahtarlar içeri aktarıldı. Blockchain'i yeniden taramak birkaç dakika sürebilir. O zamana kadar, işlevsellik sınırlı olabilir
-
+ Özel anahtar içe aktarma yeniden taraması tamamlandı
@@ -574,251 +574,251 @@
YOUR_TRANSLATION_HERE
-
+ Tor konfigürasyonu yalnızca gömülü bir hushd çalışırken kullanılabilir.
-
+ Harici bir hushd kullanıyorsun. Lütfen hushd'yi -rescan ile yeniden başlat
-
+ Harici bir hushd kullanıyorsun. Lütfen hushd'yi -reindex ile yeniden başlat
-
+ Tor'u etkinleştir
-
+ Tor üzerinden bağlantı etkin. Bu özelliği kullanmak için, SilentDragon'u yeniden başlatmanız gerekir.
-
+ Tor'u devre dışı bırak
-
+ Tor üzerinden bağlantı devre dışı bırakıldı. Tor ile bağlantıyı tamamen kesmek için SilentDragon'u yeniden başlatmanız gerekir.
-
+ SilentDragon yeniden tarama/yeniden indeksleme için yeniden başlatılması gerekiyor. SilentDragon şimdi kapanacak, lütfen devam etmek için SilentDragon'u yeniden başlatın
-
+ SilentDragon'u yeniden başlat
-
+ SilentDragon veya Hush hakkında bazı görüşler...
-
+ Duke'ye özel ve korumalı geri bildirim gönder
-
+ veya SilentDragon
-
+ Doğrulamak için adres girin
-
+ Transparan veya Korumalı Adres:
-
+ HUSH URI'sini yapıştır
-
+ Hush URI ödeme hatası
-
+ URI bu şekilde olmalıdır: 'hush:<addr>?amt=x&memo=y
-
+ Lütfen özel anahtarlarınızı buraya, her satıra bir tane olacak şekilde yapıştırın
-
+ Anahtarlar bağlı Hush düğümünüze aktarılacak
-
+ Anahtarlar içeri aktarıldı. Blockchain'i yeniden taramak birkaç dakika sürebilir. O zamana kadar, işlevsellik sınırlı olabilir
-
+ Hata
-
+ İşlemler dışa aktarılırken hata oluştu, dosya kaydedilmedi
-
+ wallet.dat yok
-
+ wallet.dat dosyası bu bilgisayarda bulunamadı
-
+ hushd'ın çalıştığı makineden yedeklemeniz gerekiyor
-
+ wallet.dat dosyasını yedekle
-
+ Yedeklenemedi
-
+ wallet.dat dosyası yedeklenemedi.
-
+ Manuel olarak yedeklemeniz gerekir.
-
+ Bunlar, cüzdanınızdaki tüm adreslerin özel anahtarlarıdır
-
+ için özel anahtar
-
+ Dosyayı Kaydet
-
+ Dosya açılamıyor
-
-
+
+ Adresi kopyala
-
-
-
+
+
+ Panoya kopyalandı
-
+ Özel anahtarı al
-
+ sapling'e kalkan dengesi
-
-
+
+ Blok gezgini üzerinde göster
-
+ Adres Varlığı Görüntüleyicisi
-
+ Adresi Dönüştür
-
+ Sapling'e geç
-
+ txid'i kopyala
-
+ Ödeme Talebini Görüntüle
-
+ Memo'yu Görüntüle
-
+
-
+ Yeni t-Addr oluşturuldu
-
+ Adresi Kopyala
-
+ Adres daha önce kullanılmış
-
+ Adres kullanılmamış
@@ -1187,28 +1187,28 @@ Hepsi başarısız olursa, lütfen hushd'i manuel olarak çalıştırın.
hushd ile bağlantı kurulurken bir hata oluştu. Hata
-
+ id ile işlem
-
+ başarısız oldu. Hata
-
+ başarısız oldu
-
+
@@ -1304,7 +1304,7 @@ Lütfen Düzenle->Ayarlar menüsünde sunucu/bağlantı noktası ve kullanıc
-
+
@@ -1395,7 +1395,7 @@ Lütfen Düzenle->Ayarlar menüsünde sunucu/bağlantı noktası ve kullanıc
Etiketi sil
-
+ İşlem gönderildi (kopyalamak için sağ tıklayın) id:
@@ -1647,26 +1647,51 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.
+
+ Gezgin
+
+
+
+
+ İşlem Gezgini URL'İ
+
+
+
+
+ Adres Gezgini URL'İ
+
+
+
+
+ Testnet İşlem Gezgini URL'İ
+
+
+
+
+ Testnet Adres Gezgini URL'İ
+
+
+ Sorun giderme
-
+ Yeniden indeksle
-
+ Eksik cüzdan işlemleri ve cüzdan bakiyenizi düzeltmek için blok zincirini yeniden tarayın. Bu birkaç saat sürebilir. Bunun gerçekleşmesi için SilentDragon'u yeniden başlatmanız gerekir
-
+ Yeniden tara
-
+ Tüm blok dosyalarını yeniden tarayarak blok zincirini genesis bloğundan yeniden oluşturun. Bu, donanımınıza bağlı olarak birkaç saat ila günler sürebilir. Bunun gerçekleşmesi için SilentDragon’u yeniden başlatmanız gerekir
diff --git a/res/zec_qt_wallet_uk.ts b/res/zec_qt_wallet_uk.ts
index 417e9d9..750746a 100644
--- a/res/zec_qt_wallet_uk.ts
+++ b/res/zec_qt_wallet_uk.ts
@@ -163,8 +163,8 @@
-
-
+
+ Мітка
@@ -274,7 +274,7 @@
-
+ Експорт приватного ключа
@@ -313,7 +313,7 @@
-
+ Завантаження ...
@@ -518,7 +518,7 @@
-
+ Експорт транзакцій
@@ -551,47 +551,47 @@
Повідомити про помилку...
-
+ Включити Tor
-
+ З'єднання через Tor було включено. Щоб скористатися цією функцією, вам потрібно перезапустити SilentDragon.
-
+ Відключити Tor
-
+ З'єднання через Tor було відключено. Щоб повністю відключитися від Tor, вам потрібно перезапустити SilentDragon.
-
+
-
+
-
+
-
+
-
+ Обчислення Tx:
@@ -601,17 +601,17 @@
Ключі були імпортовані. Повторне сканування блокчейна може зайняти кілька хвилин. До тих пір функціональність може бути обмежена
-
+ Повторне сканування приватного ключа завершено
-
+ SilentDragon необхідно перезапустити для повторного сканування / переіндексації. Перезапустіть SilentDragon, щоб продовжити
-
+ Перезапуск SilentDragon
@@ -628,146 +628,146 @@
Ключі будуть імпортовані в ваш підключений вузол hushd
-
+
-
+
-
+
-
+
-
+
-
+
-
+ Помилка
-
+ Помилка експорту транзакцій, файл не був збережений
-
+ Немає wallet.dat
-
+ Не вдалося знайти wallet.dat на цьому комп'ютері
-
+ Ви повинні зробити резервну копію з машини, на якій працює hushd
-
+ Зберегти wallet.dat
-
+ Неможливо зберегти
-
+ Неможливо зберегти файл wallet.dat.
-
+ Вам потрібно зробити резервну копію вручну.
-
+ Це все приватні ключі для всіх адрес у вашому гаманці
-
+ Приватний ключ для
-
+ Зберегти файл
-
+ Неможливо відкрити файл
-
-
+
+ Копіювати адресу
-
-
-
+
+
+ Скопійовано в буфер обміну
-
+ Отримати приватний ключ
-
+ Shield balance to Sapling
-
-
+
+ Подивитися в провіднику блоків
-
+
-
+
-
+ Migrate to Sapling
-
+ Скопіювати txid
@@ -784,17 +784,17 @@
Оновити
-
+ Конфігурація Tor доступна тільки при роботі з вбудованим hushd.
-
+ Ви використовуєте зовнішній hushd. Будь ласка, перезапустіть hushd з -rescan
-
+ Ви використовуєте зовнішній hushd. Будь ласка, перезапустіть hushd з -reindex
@@ -871,17 +871,17 @@
Надіслати для OleksandrBlack подяку за
-
+ або SilentDragon
-
+ Введіть адресу для перевірки
-
+ Прозора або екранована адреса:
@@ -902,37 +902,37 @@
Це може зайняти кілька хвилин. Завантаження ...
-
+ Подивитися запит на оплату
-
+ Подивитися мітку
-
+ Відповісти на
-
+ Створити новий t-Addr (R)
-
+ Копіювати адресу
-
+ Адреса була раніше використана
-
+ Адреса не використовується
@@ -1338,28 +1338,28 @@ Please set the host/port and user/password in the Edit->Settings menu.не підтверджено
-
+ Транзакція з id
-
+ не вдалося. Помилка
-
+ помилка
-
+
@@ -1434,7 +1434,7 @@ Please set the host/port and user/password in the Edit->Settings menu.
-
+
@@ -1521,7 +1521,7 @@ Please set the host/port and user/password in the Edit->Settings menu.Видалити мітку
-
+ Tx представлений (клікніть правою кнопкою миші, щоб скопіювати) txid:
@@ -2017,26 +2017,51 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Виправлення проблем
-
+ Reindex
-
+ Повторно сканує блокчейн для будь-яких пропущених транзакцій гаманця і виправляє баланс вашого гаманця. Це може зайняти кілька годин. Вам потрібно перезапустити SilentDragon, щоб це набуло чинності
-
+ Rescan
-
+ Перебудовує весь блокчейн з блоку генезису шляхом повторного сканування всіх файлів блоків. Це може зайняти кілька годин або днів, в залежності від вашого обладнання. Вам потрібно перезапустити SilentDragon, щоб це набуло чинності
diff --git a/res/zec_qt_wallet_zh.ts b/res/zec_qt_wallet_zh.ts
index c601faa..2e2a751 100644
--- a/res/zec_qt_wallet_zh.ts
+++ b/res/zec_qt_wallet_zh.ts
@@ -151,8 +151,8 @@
-
-
+
+ 备注
@@ -243,7 +243,7 @@
-
+ 导出私钥
@@ -278,7 +278,7 @@
-
+ 加载中...
@@ -512,7 +512,7 @@
-
+ 导出交易
@@ -551,42 +551,42 @@
hushd尚未准备好。 请等待UI加载
-
+ Tor配置仅在运行嵌入的hushd时可用。
-
+ 你正在使用外部hushd。 请使用-rescan参数重新启动hushd
-
+ 你正在使用外部hushd。 请使用-reindex重新启动hushd
-
+ 启用Tor
-
+ 已启用Tor上的连接。 要使用此功能,您需要重新启动SilentDragon。
-
+ 禁用Tor
-
+ Tor上的连接已被禁用。 要完全断开与Tor的连接,您需要重新启动SilentDragon。
-
+ SlientDragon需要重新启动才能重新扫描/重新索引。 SlientDragon现在关闭,请重启SlientDragon以继续
@@ -607,23 +607,23 @@
支持SlientDragon
-
+ 你在testnet上,你的帖子实际上不会出现在z-board.net上
-
+ 您需要一个具有可用余额的sapling地址才能发布
-
+ 计算交易:
-
+ 私钥导入重新扫描完成
@@ -636,7 +636,7 @@
支付hush URI时出错
-
+ URI的格式应为 'hush:<addr>?amt=x&memo=y'
@@ -653,206 +653,206 @@
钥匙是导入的。 重新扫描区块链可能需要几分钟时间。 在此之前,功能可能会受到限制
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+ 错误
-
+ 导出交易时出错,文件未保存
-
+ 没有 wallet.dat
-
+ 在这台电脑上找不到wallet.dat
-
+ 你需要从运行hushd的机器备份它
-
+ 备份 wallet.dat
-
+ 无法备份
-
+ 无法备份wallet.dat文件。
-
+ 您需要手动备份它。
-
+ 这些都是钱包中所有地址的私钥
-
+ 私钥
-
+ 保存文件
-
+ 无法打开文件
-
-
+
+ 复制成功
-
-
-
+
+
+ 复制到剪贴板
-
+ 获取私钥
-
+ 屏蔽余额到Sapling地址
-
-
+
+ 从区块浏览器中查看
-
+
-
+
-
+ 迁移到Sapling地址
-
+ 复制交易ID
-
+ 查看付款申请
-
+ 查看备注
-
+ 回复给
-
+ 创建了新的t-Addr
-
+
-
+ 该地址以前使用过
-
+ 地址未使用
@@ -1356,7 +1356,7 @@ Please set the host/port and user/password in the Edit->Settings menu.
-
+
@@ -1367,28 +1367,28 @@ Please set the host/port and user/password in the Edit->Settings menu.发送交易时出错。 错误是:
-
+ 交易
-
+ 失败
-
+ 交易
-
+
@@ -1516,7 +1516,7 @@ Would you like to visit the releases page?
等待hushd退出
-
+ 交易提交(右键单击复制)交易ID:
@@ -1914,12 +1914,37 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1932,12 +1957,12 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
获取 ZEC/USD 价格
-
+ 故障排除
-
+ 重建索引
@@ -1946,7 +1971,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
重新扫描区块链以查找任何丢失的钱包交易并更正您的钱包余额。 这可能需要几个小时。 您需要重新启动SlientDragon才能使其生效
-
+ 重新扫描
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a115a90..e2ebd70 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -34,8 +34,8 @@ MainWindow::MainWindow(QWidget *parent) :
// Status Bar
setupStatusBar();
-
- // Settings editor
+
+ // Settings editor
setupSettingsModal();
// Set up exit action
@@ -102,7 +102,7 @@ MainWindow::MainWindow(QWidget *parent) :
QString version = QString("Version ") % QString(APP_VERSION) % " (" % QString(__DATE__) % ")";
about.versionLabel->setText(version);
-
+
aboutDialog.exec();
});
@@ -130,7 +130,7 @@ MainWindow::MainWindow(QWidget *parent) :
createWebsocket(wormholecode);
}
}
-
+
void MainWindow::createWebsocket(QString wormholecode) {
// Create the websocket server, for listening to direct connections
int wsport = 8777;
@@ -207,12 +207,12 @@ void MainWindow::turnstileProgress() {
// Get the plan progress
if (rpc->getTurnstile()->isMigrationPresent()) {
auto curProgress = rpc->getTurnstile()->getPlanProgress();
-
+
progress.progressTxt->setText(QString::number(curProgress.step) % QString(" / ") % QString::number(curProgress.totalSteps));
progress.progressBar->setValue(100 * curProgress.step / curProgress.totalSteps);
-
+
auto nextTxBlock = curProgress.nextBlock - Settings::getInstance()->getBlockNumber();
-
+
progress.fromAddr->setText(curProgress.from);
progress.toAddr->setText(curProgress.to);
@@ -224,12 +224,12 @@ void MainWindow::turnstileProgress() {
}
progress.nextTx->setText(txt);
} else {
- progress.nextTx->setText(QString("Next transaction in ")
+ progress.nextTx->setText(QString("Next transaction in ")
% QString::number(nextTxBlock < 0 ? 0 : nextTxBlock)
- % " blocks via " % curProgress.via % "\n"
+ % " blocks via " % curProgress.via % "\n"
% (nextTxBlock <= 0 ? "(waiting for confirmations)" : ""));
}
-
+
} else {
progress.progressTxt->setText("");
progress.progressBar->setValue(0);
@@ -237,11 +237,11 @@ void MainWindow::turnstileProgress() {
}
};
- QTimer progressTimer(this);
+ QTimer progressTimer(this);
QObject::connect(&progressTimer, &QTimer::timeout, fnUpdateProgressUI);
progressTimer.start(Settings::updateSpeed);
fnUpdateProgressUI();
-
+
auto curProgress = rpc->getTurnstile()->getPlanProgress();
// Abort button
@@ -264,11 +264,11 @@ void MainWindow::turnstileProgress() {
}
});
- d.exec();
+ d.exec();
if (migrationFinished || curProgress.step == curProgress.totalSteps) {
// Finished, so delete the file
rpc->getTurnstile()->removeFile();
- }
+ }
}
void MainWindow::turnstileDoMigration(QString fromAddr) {
@@ -324,12 +324,12 @@ void MainWindow::turnstileDoMigration(QString fromAddr) {
} else {
bal = rpc->getAllBalances()->value(addr);
}
-
+
auto balTxt = Settings::getZECUSDDisplayFormat(bal);
-
+
if (bal < Turnstile::minMigrationAmount) {
turnstile.fromBalance->setStyleSheet("color: red;");
- turnstile.fromBalance->setText(balTxt % " [You need at least "
+ turnstile.fromBalance->setText(balTxt % " [You need at least "
% Settings::getZECDisplayFormat(Turnstile::minMigrationAmount)
% " for automatic migration]");
turnstile.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
@@ -343,14 +343,14 @@ void MainWindow::turnstileDoMigration(QString fromAddr) {
if (!fromAddr.isEmpty())
turnstile.migrateZaddList->setCurrentText(fromAddr);
- fnUpdateSproutBalance(turnstile.migrateZaddList->currentText());
+ fnUpdateSproutBalance(turnstile.migrateZaddList->currentText());
// Combo box selection event
QObject::connect(turnstile.migrateZaddList, &QComboBox::currentTextChanged, fnUpdateSproutBalance);
-
+
// Privacy level combobox
// Num tx over num blocks
- QList> privOptions;
+ QList> privOptions;
privOptions.push_back(std::make_tuple(3, 576));
privOptions.push_back(std::make_tuple(5, 1152));
privOptions.push_back(std::make_tuple(10, 2304));
@@ -367,30 +367,30 @@ void MainWindow::turnstileDoMigration(QString fromAddr) {
QString::number(std::get<0>(i)) % " txns)"
);
}
-
+
turnstile.buttonBox->button(QDialogButtonBox::Ok)->setText("Start");
if (d.exec() == QDialog::Accepted) {
auto privLevel = privOptions[turnstile.privLevel->currentIndex()];
rpc->getTurnstile()->planMigration(
- turnstile.migrateZaddList->currentText(),
+ turnstile.migrateZaddList->currentText(),
turnstile.migrateTo->currentText(),
std::get<0>(privLevel), std::get<1>(privLevel));
- QMessageBox::information(this, "Backup your wallet.dat",
- "The migration will now start. You can check progress in the File -> Sapling Turnstile menu.\n\nYOU MUST BACKUP YOUR wallet.dat NOW!\n\nNew Addresses have been added to your wallet which will be used for the migration.",
+ QMessageBox::information(this, "Backup your wallet.dat",
+ "The migration will now start. You can check progress in the File -> Sapling Turnstile menu.\n\nYOU MUST BACKUP YOUR wallet.dat NOW!\n\nNew Addresses have been added to your wallet which will be used for the migration.",
QMessageBox::Ok);
}
}
-void MainWindow::setupTurnstileDialog() {
+void MainWindow::setupTurnstileDialog() {
// Turnstile migration
QObject::connect(ui->actionTurnstile_Migration, &QAction::triggered, [=] () {
// If there is current migration that is present, show the progress button
if (rpc->getTurnstile()->isMigrationPresent())
turnstileProgress();
- else
- turnstileDoMigration();
+ else
+ turnstileDoMigration();
});
}
@@ -420,11 +420,12 @@ void MainWindow::setupStatusBar() {
});
menu.addAction("View tx on block explorer", [=]() {
QString url;
+ auto explorer = Settings::getInstance()->getExplorer();
if (Settings::getInstance()->isTestnet()) {
- url = "https://explorer.testnet.z.cash/tx/" + txid;
+ url = explorer.testnetTxExplorerUrl + txid;
}
else {
- url = "https://explorer.myhush.org/tx/" + txid;
+ url = explorer.txExplorerUrl + txid;
}
QDesktopServices::openUrl(QUrl(url));
});
@@ -444,7 +445,7 @@ void MainWindow::setupStatusBar() {
ui->statusBar->addPermanentWidget(statusIcon);
}
-void MainWindow::setupSettingsModal() {
+void MainWindow::setupSettingsModal() {
// Set up File -> Settings action
QObject::connect(ui->actionSettings, &QAction::triggered, [=]() {
QDialog settingsDialog(this);
@@ -517,13 +518,21 @@ void MainWindow::setupSettingsModal() {
settings.rpcpassword->setEnabled(true);
}
- // Load current values into the dialog
+ // Load current values into the dialog
+ // Load current values into the dialog
auto conf = Settings::getInstance()->getSettings();
settings.hostname->setText(conf.host);
settings.port->setText(conf.port);
settings.rpcuser->setText(conf.rpcuser);
settings.rpcpassword->setText(conf.rpcpassword);
+ // Load current explorer values into the dialog
+ auto explorer = Settings::getInstance()->getExplorer();
+ settings.txExplorerUrl->setText(explorer.txExplorerUrl);
+ settings.addressExplorerUrl->setText(explorer.addressExplorerUrl);
+ settings.testnetTxExplorerUrl->setText(explorer.testnetTxExplorerUrl);
+ settings.testnetAddressExplorerUrl->setText(explorer.testnetAddressExplorerUrl);
+
// Connection tab by default
settings.tabWidget->setCurrentIndex(0);
@@ -558,8 +567,8 @@ void MainWindow::setupSettingsModal() {
Settings::addToZcashConf(zcashConfLocation, "proxy=127.0.0.1:9050");
rpc->getConnection()->config->proxy = "proxy=127.0.0.1:9050";
- QMessageBox::information(this, tr("Enable Tor"),
- tr("Connection over Tor has been enabled. To use this feature, you need to restart SilentDragon."),
+ QMessageBox::information(this, tr("Enable Tor"),
+ tr("Connection over Tor has been enabled. To use this feature, you need to restart SilentDragon."),
QMessageBox::Ok);
}
@@ -580,11 +589,18 @@ void MainWindow::setupSettingsModal() {
settings.port->text(),
settings.rpcuser->text(),
settings.rpcpassword->text());
-
+
auto cl = new ConnectionLoader(this, rpc);
cl->loadConnection();
}
+ // Save explorer
+ Settings::getInstance()->saveExplorer(
+ settings.txExplorerUrl->text(),
+ settings.addressExplorerUrl->text(),
+ settings.testnetTxExplorerUrl->text(),
+ settings.testnetAddressExplorerUrl->text());
+
// Check to see if rescan or reindex have been enabled
bool showRestartInfo = false;
if (settings.chkRescan->isChecked()) {
@@ -599,7 +615,7 @@ void MainWindow::setupSettingsModal() {
if (showRestartInfo) {
auto desc = tr("SilentDragon needs to restart to rescan/reindex. SilentDragon will now close, please restart SilentDragon to continue");
-
+
QMessageBox::information(this, tr("Restart SilentDragon"), desc, QMessageBox::Ok);
QTimer::singleShot(1, [=]() { this->close(); });
}
@@ -655,7 +671,7 @@ void MainWindow::validateAddress() {
// First thing is ask the user for an address
bool ok;
- auto address = QInputDialog::getText(this, tr("Enter Address to validate"),
+ auto address = QInputDialog::getText(this, tr("Enter Address to validate"),
tr("Transparent or Shielded Address:") + QString(" ").repeated(140), // Pad the label so the dialog box is wide enough
QLineEdit::Normal, "", &ok);
if (!ok)
@@ -770,7 +786,7 @@ void MainWindow::postToZBoard() {
if (d.exec() == QDialog::Accepted) {
// Create a transaction.
Tx tx;
-
+
// Send from your first sapling address that has a balance.
tx.fromAddr = zb.fromAddr->currentText();
if (tx.fromAddr.isEmpty()) {
@@ -790,16 +806,16 @@ void MainWindow::postToZBoard() {
rpc->executeTransaction(tx, [=] (QString opid) {
ui->statusBar->showMessage(tr("Computing Tx: ") % opid);
},
- [=] (QString /*opid*/, QString txid) {
+ [=] (QString /*opid*/, QString txid) {
ui->statusBar->showMessage(Settings::txidStatusMessage + " " + txid);
},
[=] (QString opid, QString errStr) {
ui->statusBar->showMessage(QObject::tr(" Tx ") % opid % QObject::tr(" failed"), 15 * 1000);
if (!opid.isEmpty())
- errStr = QObject::tr("The transaction with id ") % opid % QObject::tr(" failed. The error was") + ":\n\n" + errStr;
+ errStr = QObject::tr("The transaction with id ") % opid % QObject::tr(" failed. The error was") + ":\n\n" + errStr;
- QMessageBox::critical(this, QObject::tr("Transaction Error"), errStr, QMessageBox::Ok);
+ QMessageBox::critical(this, QObject::tr("Transaction Error"), errStr, QMessageBox::Ok);
});
}
}
@@ -823,14 +839,14 @@ void MainWindow::doImport(QList* keys) {
if (key.startsWith("SK") ||
key.startsWith("secret")) { // Z key
- rpc->importZPrivKey(key, rescan, [=] (auto) { this->doImport(keys); });
+ rpc->importZPrivKey(key, rescan, [=] (auto) { this->doImport(keys); });
} else {
rpc->importTPrivKey(key, rescan, [=] (auto) { this->doImport(keys); });
}
}
-// Callback invoked when the RPC has finished loading all the balances, and the UI
+// Callback invoked when the RPC has finished loading all the balances, and the UI
// is now ready to send transactions.
void MainWindow::balancesReady() {
// First-time check
@@ -889,7 +905,7 @@ void MainWindow::payZcashURI(QString uri, QString myAddr) {
qDebug() << "Received URI " << uri;
PaymentURI paymentInfo = Settings::parseURI(uri);
if (!paymentInfo.error.isEmpty()) {
- QMessageBox::critical(this, tr("Error paying Hush URI"),
+ QMessageBox::critical(this, tr("Error paying Hush URI"),
tr("URI should be of the form 'hush:?amt=x&memo=y") + "\n" + paymentInfo.error);
return;
}
@@ -926,7 +942,7 @@ void MainWindow::importPrivKey() {
pui.buttonBox->button(QDialogButtonBox::Save)->setVisible(false);
pui.helpLbl->setText(QString() %
tr("Please paste your private keys here, one per line") % ".\n" %
- tr("The keys will be imported into your connected Hush node"));
+ tr("The keys will be imported into your connected Hush node"));
if (d.exec() == QDialog::Accepted && !pui.privKeyTxt->toPlainText().trimmed().isEmpty()) {
auto rawkeys = pui.privKeyTxt->toPlainText().trimmed().split("\n");
@@ -942,8 +958,8 @@ void MainWindow::importPrivKey() {
return key.trimmed().split(" ")[0];
});
- // Special case.
- // Sometimes, when importing from a paperwallet or such, the key is split by newlines, and might have
+ // Special case.
+ // Sometimes, when importing from a paperwallet or such, the key is split by newlines, and might have
// been pasted like that. So check to see if the whole thing is one big private key
if (Settings::getInstance()->isValidSaplingPrivateKey(keys->join(""))) {
auto multiline = keys;
@@ -955,31 +971,31 @@ void MainWindow::importPrivKey() {
// Start the import. The function takes ownership of keys
QTimer::singleShot(1, [=]() {doImport(keys);});
- // Show the dialog that keys will be imported.
+ // Show the dialog that keys will be imported.
QMessageBox::information(this,
"Imported", tr("The keys were imported! It may take several minutes to rescan the blockchain. Until then, functionality may be limited"),
QMessageBox::Ok);
}
}
-/**
+/**
* Export transaction history into a CSV file
*/
void MainWindow::exportTransactions() {
// First, get the export file name
QString exportName = "hush-transactions-" + QDateTime::currentDateTime().toString("yyyyMMdd") + ".csv";
- QUrl csvName = QFileDialog::getSaveFileUrl(this,
+ QUrl csvName = QFileDialog::getSaveFileUrl(this,
tr("Export transactions"), exportName, "CSV file (*.csv)");
if (csvName.isEmpty())
return;
if (!rpc->getTransactionsModel()->exportToCsv(csvName.toLocalFile())) {
- QMessageBox::critical(this, tr("Error"),
+ QMessageBox::critical(this, tr("Error"),
tr("Error exporting transactions, file was not saved"), QMessageBox::Ok);
}
-}
+}
/**
* Backup the wallet.dat file. This is kind of a hack, since it has to read from the filesystem rather than an RPC call
@@ -996,20 +1012,20 @@ void MainWindow::backupWalletDat() {
zcashdir.cd("testnet3");
backupDefaultName = "testnet-" + backupDefaultName;
}
-
+
QFile wallet(zcashdir.filePath("wallet.dat"));
if (!wallet.exists()) {
QMessageBox::critical(this, tr("No wallet.dat"), tr("Couldn't find the wallet.dat on this computer") + "\n" +
tr("You need to back it up from the machine hushd is running on"), QMessageBox::Ok);
return;
}
-
+
QUrl backupName = QFileDialog::getSaveFileUrl(this, tr("Backup wallet.dat"), backupDefaultName, "Data file (*.dat)");
if (backupName.isEmpty())
return;
if (!wallet.copy(backupName.toLocalFile())) {
- QMessageBox::critical(this, tr("Couldn't backup"), tr("Couldn't backup the wallet.dat file.") +
+ QMessageBox::critical(this, tr("Couldn't backup"), tr("Couldn't backup the wallet.dat file.") +
tr("You need to back it up manually."), QMessageBox::Ok);
}
}
@@ -1024,7 +1040,7 @@ void MainWindow::exportKeys(QString addr) {
QDialog d(this);
Ui_PrivKey pui;
pui.setupUi(&d);
-
+
// Make the window big by default
auto ps = this->geometry();
QMargins margin = QMargins() + 50;
@@ -1053,7 +1069,7 @@ void MainWindow::exportKeys(QString addr) {
if (!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, tr("Unable to open file"), file.errorString());
return;
- }
+ }
QTextStream out(&file);
out << pui.privKeyTxt->toPlainText();
});
@@ -1077,7 +1093,7 @@ void MainWindow::exportKeys(QString addr) {
if (allKeys) {
rpc->getAllPrivKeys(fnUpdateUIWithKeys);
}
- else {
+ else {
auto fnAddKey = [=](json key) {
QList> singleAddrKey;
singleAddrKey.push_back(QPair(addr, QString::fromStdString(key.get())));
@@ -1089,9 +1105,9 @@ void MainWindow::exportKeys(QString addr) {
}
else {
rpc->getTPrivKey(addr, fnAddKey);
- }
+ }
}
-
+
d.exec();
*isDialogAlive = false;
}
@@ -1130,7 +1146,7 @@ void MainWindow::setupBalancesTab() {
QObject::connect(ui->balancesTable, &QTableView::doubleClicked, [=](auto index) {
index = index.sibling(index.row(), 0);
auto addr = AddressBook::addressFromAddressLabel(ui->balancesTable->model()->data(index).toString());
-
+
fnDoSendFrom(addr);
});
@@ -1148,7 +1164,7 @@ void MainWindow::setupBalancesTab() {
menu.addAction(tr("Copy address"), [=] () {
QClipboard *clipboard = QGuiApplication::clipboard();
- clipboard->setText(addr);
+ clipboard->setText(addr);
ui->statusBar->showMessage(tr("Copied to clipboard"), 3 * 1000);
});
@@ -1170,11 +1186,12 @@ void MainWindow::setupBalancesTab() {
menu.addAction(tr("View on block explorer"), [=] () {
QString url;
+ auto explorer = Settings::getInstance()->getExplorer();
if (Settings::getInstance()->isTestnet()) {
//TODO
- url = "https://explorer.testnet.myhush.org/address/" + addr;
+ url = explorer.testnetAddressExplorerUrl + addr;
} else {
- url = "https://explorer.myhush.org/address/" + addr;
+ url = explorer.addressExplorerUrl + addr;
}
QDesktopServices::openUrl(QUrl(url));
});
@@ -1199,11 +1216,11 @@ void MainWindow::setupBalancesTab() {
});
}
- menu.exec(ui->balancesTable->viewport()->mapToGlobal(pos));
+ menu.exec(ui->balancesTable->viewport()->mapToGlobal(pos));
});
}
-void MainWindow::setupZcashdTab() {
+void MainWindow::setupZcashdTab() {
ui->hushlogo->setBasePixmap(QPixmap(":/img/res/zcashdlogo.gif"));
}
@@ -1236,7 +1253,7 @@ void MainWindow::setupTransactionsTab() {
QString memo = txModel->getMemo(index.row());
QString addr = txModel->getAddr(index.row());
- menu.addAction(tr("Copy txid"), [=] () {
+ menu.addAction(tr("Copy txid"), [=] () {
QGuiApplication::clipboard()->setText(txid);
ui->statusBar->showMessage(tr("Copied to clipboard"), 3 * 1000);
});
@@ -1250,10 +1267,11 @@ void MainWindow::setupTransactionsTab() {
menu.addAction(tr("View on block explorer"), [=] () {
QString url;
+ auto explorer = Settings::getInstance()->getExplorer();
if (Settings::getInstance()->isTestnet()) {
- url = "https://explorer.testnet.myhush.org/tx/" + txid;
+ url = explorer.testnetTxExplorerUrl + txid;
} else {
- url = "https://explorer.myhush.org/tx/" + txid;
+ url = explorer.txExplorerUrl + txid;
}
QDesktopServices::openUrl(QUrl(url));
});
@@ -1267,7 +1285,7 @@ void MainWindow::setupTransactionsTab() {
// View Memo
if (!memo.isEmpty()) {
- menu.addAction(tr("View Memo"), [=] () {
+ menu.addAction(tr("View Memo"), [=] () {
QMessageBox mb(QMessageBox::Information, tr("Memo"), memo, QMessageBox::Ok, this);
mb.setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
mb.exec();
@@ -1278,8 +1296,8 @@ void MainWindow::setupTransactionsTab() {
if (!memo.isEmpty()) {
int lastPost = memo.trimmed().lastIndexOf(QRegExp("[\r\n]+"));
QString lastWord = memo.right(memo.length() - lastPost - 1);
-
- if (Settings::getInstance()->isSaplingAddress(lastWord) ||
+
+ if (Settings::getInstance()->isSaplingAddress(lastWord) ||
Settings::getInstance()->isSproutAddress(lastWord)) {
menu.addAction(tr("Reply to ") + lastWord.left(25) + "...", [=]() {
// First, cancel any pending stuff in the send tab by pretending to click
@@ -1302,7 +1320,7 @@ void MainWindow::setupTransactionsTab() {
}
}
- menu.exec(ui->transactionsTable->viewport()->mapToGlobal(pos));
+ menu.exec(ui->transactionsTable->viewport()->mapToGlobal(pos));
});
}
@@ -1314,11 +1332,11 @@ void MainWindow::addNewZaddr(bool sapling) {
// Just double make sure the z-address is still checked
if ( sapling && ui->rdioZSAddr->isChecked() ) {
- ui->listReceiveAddresses->insertItem(0, addr);
+ ui->listReceiveAddresses->insertItem(0, addr);
ui->listReceiveAddresses->setCurrentIndex(0);
ui->statusBar->showMessage(QString::fromStdString("Created new zAddr") %
- (sapling ? "(Sapling)" : "(Sprout)"),
+ (sapling ? "(Sapling)" : "(Sprout)"),
10 * 1000);
}
});
@@ -1328,8 +1346,8 @@ void MainWindow::addNewZaddr(bool sapling) {
// Adds sapling or sprout z-addresses to the combo box. Technically, returns a
// lambda, which can be connected to the appropriate signal
std::function MainWindow::addZAddrsToComboList(bool sapling) {
- return [=] (bool checked) {
- if (checked && this->rpc->getAllZAddresses() != nullptr) {
+ return [=] (bool checked) {
+ if (checked && this->rpc->getAllZAddresses() != nullptr) {
auto addrs = this->rpc->getAllZAddresses();
ui->listReceiveAddresses->clear();
@@ -1341,13 +1359,13 @@ std::function MainWindow::addZAddrsToComboList(bool sapling) {
ui->listReceiveAddresses->addItem(addr, bal);
}
}
- });
+ });
// If z-addrs are empty, then create a new one.
if (addrs->isEmpty()) {
addNewZaddr(sapling);
}
- }
+ }
};
}
@@ -1370,11 +1388,11 @@ void MainWindow::setupReceiveTab() {
};
// Connect t-addr radio button
- QObject::connect(ui->rdioTAddr, &QRadioButton::toggled, [=] (bool checked) {
+ QObject::connect(ui->rdioTAddr, &QRadioButton::toggled, [=] (bool checked) {
qDebug() << "taddr radio toggled";
- if (checked && this->rpc->getUTXOs() != nullptr) {
+ if (checked && this->rpc->getUTXOs() != nullptr) {
updateTAddrCombo(checked);
- }
+ }
// Toggle the "View all addresses" button as well
ui->btnViewAllAddresses->setVisible(checked);
@@ -1407,7 +1425,7 @@ void MainWindow::setupReceiveTab() {
QString addr = viewaddrs.tblAddresses->model()->data(index).toString();
QMenu menu(this);
- menu.addAction(tr("Export Private Key"), [=] () {
+ menu.addAction(tr("Export Private Key"), [=] () {
if (addr.isEmpty())
return;
@@ -1442,7 +1460,7 @@ void MainWindow::setupReceiveTab() {
// Switched to receive tab, select the z-addr radio button
ui->rdioZSAddr->setChecked(true);
ui->btnViewAllAddresses->setVisible(false);
-
+
// And then select the first one
ui->listReceiveAddresses->setCurrentIndex(0);
}
@@ -1453,7 +1471,7 @@ void MainWindow::setupReceiveTab() {
ui->rcvLabel->setValidator(v);
// Select item in address list
- QObject::connect(ui->listReceiveAddresses,
+ QObject::connect(ui->listReceiveAddresses,
QOverload::of(&QComboBox::currentIndexChanged), [=] (int index) {
QString addr = ui->listReceiveAddresses->itemText(index);
if (addr.isEmpty()) {
@@ -1473,18 +1491,18 @@ void MainWindow::setupReceiveTab() {
else {
ui->rcvUpdateLabel->setText("Update Label");
}
-
+
ui->rcvLabel->setText(label);
ui->rcvBal->setText(Settings::getZECUSDDisplayFormat(rpc->getAllBalances()->value(addr)));
- ui->txtReceive->setPlainText(addr);
+ ui->txtReceive->setPlainText(addr);
ui->qrcodeDisplay->setQrcodeString(addr);
if (rpc->getUsedAddresses()->value(addr, false)) {
ui->rcvBal->setToolTip(tr("Address has been previously used"));
} else {
ui->rcvBal->setToolTip(tr("Address is unused"));
}
-
- });
+
+ });
// Receive tab add/update label
QObject::connect(ui->rcvUpdateLabel, &QPushButton::clicked, [=]() {
diff --git a/src/settings.cpp b/src/settings.cpp
index 56fdd39..c40dc7f 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -3,8 +3,8 @@
Settings* Settings::instance = nullptr;
-Settings* Settings::init() {
- if (instance == nullptr)
+Settings* Settings::init() {
+ if (instance == nullptr)
instance = new Settings();
return instance;
@@ -30,15 +30,34 @@ void Settings::setAllowFetchPrices(bool allow) {
QSettings().setValue("options/allowfetchprices", allow);
}
+Explorer Settings::getExplorer() {
+ // Load from the QT Settings.
+ QSettings s;
+
+ auto txExplorerUrl = s.value("explorer/txExplorerUrl").toString();
+ auto addressExplorerUrl = s.value("explorer/addressExplorerUrl").toString();
+ auto testnetTxExplorerUrl = s.value("explorer/testnetTxExplorerUrl").toString();
+ auto testnetAddressExplorerUrl = s.value("explorer/testnetAddressExplorerUrl").toString();
+
+ return Explorer{txExplorerUrl, addressExplorerUrl, testnetTxExplorerUrl, testnetAddressExplorerUrl};
+}
+
+void Settings::saveExplorer(const QString& txExplorerUrl, const QString& addressExplorerUrl, const QString& testnetTxExplorerUrl, const QString& testnetAddressExplorerUrl) {
+ QSettings s;
+ s.setValue("explorer/txExplorerUrl", txExplorerUrl);
+ s.setValue("explorer/addressExplorerUrl", addressExplorerUrl);
+ s.setValue("explorer/testnetTxExplorerUrl", testnetTxExplorerUrl);
+ s.setValue("explorer/testnetAddressExplorerUrl", testnetAddressExplorerUrl);
+}
Config Settings::getSettings() {
- // Load from the QT Settings.
+ // Load from the QT Settings.
QSettings s;
-
+
auto host = s.value("connection/host").toString();
auto port = s.value("connection/port").toString();
auto username = s.value("connection/rpcuser").toString();
- auto password = s.value("connection/rpcpassword").toString();
+ auto password = s.value("connection/rpcpassword").toString();
return Config{host, port, username, password};
}
@@ -90,21 +109,21 @@ bool Settings::isSaplingAddress(QString addr) {
bool Settings::isSproutAddress(QString addr) {
if (!isValidAddress(addr))
return false;
-
+
return isZAddress(addr) && !isSaplingAddress(addr);
}
bool Settings::isZAddress(QString addr) {
if (!isValidAddress(addr))
return false;
-
+
return addr.startsWith("z");
}
bool Settings::isTAddress(QString addr) {
if (!isValidAddress(addr))
return false;
-
+
return addr.startsWith("t");
}
@@ -136,8 +155,8 @@ bool Settings::isSaplingActive() {
return (isTestnet() && getBlockNumber() > 0) || (!isTestnet() && getBlockNumber() > 0);
}
-double Settings::getZECPrice() {
- return zecPrice;
+double Settings::getZECPrice() {
+ return zecPrice;
}
bool Settings::getAutoShield() {
@@ -150,7 +169,7 @@ void Settings::setAutoShield(bool allow) {
}
bool Settings::getAllowCustomFees() {
- // Load from the QT Settings.
+ // Load from the QT Settings.
return QSettings().value("options/customfees", false).toBool();
}
@@ -159,7 +178,7 @@ void Settings::setAllowCustomFees(bool allow) {
}
bool Settings::getSaveZtxs() {
- // Load from the QT Settings.
+ // Load from the QT Settings.
return QSettings().value("options/savesenttx", true).toBool();
}
@@ -235,7 +254,7 @@ bool Settings::addToZcashConf(QString confLocation, QString line) {
QFile file(confLocation);
if (!file.open(QIODevice::ReadWrite | QIODevice::Append))
return false;
-
+
QTextStream out(&file);
out << line << "\n";
@@ -250,9 +269,9 @@ bool Settings::removeFromZcashConf(QString confLocation, QString option) {
// To remove an option, we'll create a new file, and copy over everything but the option.
QFile file(confLocation);
- if (!file.open(QIODevice::ReadOnly))
+ if (!file.open(QIODevice::ReadOnly))
return false;
-
+
QList lines;
QTextStream in(&file);
while (!in.atEnd()) {
@@ -262,9 +281,9 @@ bool Settings::removeFromZcashConf(QString confLocation, QString option) {
if (name != option) {
lines.append(line);
}
- }
+ }
file.close();
-
+
QFile newfile(confLocation);
if (!newfile.open(QIODevice::ReadWrite | QIODevice::Truncate))
return false;
@@ -316,7 +335,7 @@ bool Settings::isValidAddress(QString addr) {
// Get a pretty string representation of this Payment URI
QString Settings::paymentURIPretty(PaymentURI uri) {
- return QString() + "Payment Request\n" + "Pay: " + uri.addr + "\nAmount: " + getZECDisplayFormat(uri.amt.toDouble())
+ return QString() + "Payment Request\n" + "Pay: " + uri.addr + "\nAmount: " + getZECDisplayFormat(uri.amt.toDouble())
+ "\nMemo:" + QUrl::fromPercentEncoding(uri.memo.toUtf8());
}
@@ -330,7 +349,7 @@ PaymentURI Settings::parseURI(QString uri) {
}
uri = uri.right(uri.length() - QString("hush:").length());
-
+
QRegExp re("([a-zA-Z0-9]+)");
int pos;
if ( (pos = re.indexIn(uri)) == -1 ) {
diff --git a/src/settings.h b/src/settings.h
index 07a8c29..eaabb24 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -10,6 +10,13 @@ struct Config {
QString rpcpassword;
};
+struct Explorer {
+ QString txExplorerUrl;
+ QString addressExplorerUrl;
+ QString testnetTxExplorerUrl;
+ QString testnetAddressExplorerUrl;
+};
+
struct ToFields;
struct Tx;
@@ -28,15 +35,18 @@ public:
static Settings* init();
static Settings* getInstance();
+ Explorer getExplorer();
+ void saveExplorer(const QString& txExplorerUrl, const QString& addressExplorerUrl, const QString& testnetTxExplorerUrl, const QString& testnetAddressExplorerUrl);
+
Config getSettings();
void saveSettings(const QString& host, const QString& port, const QString& username, const QString& password);
bool isTestnet();
void setTestnet(bool isTestnet);
-
+
bool isSaplingAddress(QString addr);
bool isSproutAddress(QString addr);
-
+
bool isValidSaplingPrivateKey(QString pk);
bool isSyncing();
@@ -44,7 +54,7 @@ public:
int getZcashdVersion();
void setZcashdVersion(int version);
-
+
void setUseEmbedded(bool r) { _useEmbedded = r; }
bool useEmbedded() { return _useEmbedded; }
@@ -53,7 +63,7 @@ public:
int getBlockNumber();
void setBlockNumber(int number);
-
+
bool getSaveZtxs();
void setSaveZtxs(bool save);
@@ -68,7 +78,7 @@ public:
bool getCheckForUpdates();
void setCheckForUpdates(bool allow);
-
+
bool isSaplingActive();
void setUsingZcashConf(QString confLocation);
@@ -79,10 +89,10 @@ public:
void setPeers(int peers);
int getPeers();
-
+
// Static stuff
static const QString txidStatusMessage;
-
+
static void saveRestore(QDialog* d);
static void saveRestoreTableHeader(QTableView* table, QDialog* d, QString tablename) ;
@@ -105,7 +115,7 @@ public:
static QString getZboardAddr();
static int getMaxMobileAppTxns() { return 30; }
-
+
static bool isValidAddress(QString addr);
static bool addToZcashConf(QString confLocation, QString line);
@@ -133,7 +143,7 @@ private:
bool _useEmbedded = false;
bool _headless = false;
int _peerConnections = 0;
-
+
double zecPrice = 0.0;
};
diff --git a/src/settings.ui b/src/settings.ui
index 54d0256..7a45c43 100644
--- a/src/settings.ui
+++ b/src/settings.ui
@@ -26,7 +26,7 @@
- 1
+ 2
@@ -283,6 +283,128 @@
+
+
+ Explorer
+
+
+
+
+ 9
+ 9
+ 491
+ 13
+
+
+
+ Tx Explorer URL
+
+
+
+
+
+ 9
+ 105
+ 491
+ 3
+
+
+
+ Qt::Horizontal
+
+
+
+
+
+ 9
+ 28
+ 491
+ 20
+
+
+
+ https://explorer.myhush.org/tx/
+
+
+
+
+
+ 9
+ 54
+ 491
+ 13
+
+
+
+ Address Explorer URL
+
+
+
+
+
+ 9
+ 73
+ 491
+ 20
+
+
+
+ https://explorer.myhush.org/address/
+
+
+
+
+
+ 9
+ 112
+ 491
+ 13
+
+
+
+ Testnet Tx Explorer URL
+
+
+
+
+
+ 9
+ 131
+ 491
+ 20
+
+
+
+ https://explorer.testnet.z.cash/tx/
+
+
+
+
+
+ 9
+ 160
+ 501
+ 16
+
+
+
+ Testnet Address Explorer URL
+
+
+
+
+
+ 9
+ 180
+ 491
+ 20
+
+
+
+ https://explorer.testnet.myhush.org/address/
+
+
+ Troubleshooting