diff --git a/.travis.yml b/.travis.yml
index 5391c6f..443442f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,27 +1,43 @@
+ language: rust
matrix:
include:
# works on Precise and Trusty
- os: linux
+ - dist: xenial
compiler: clang
+
+
addons:
apt:
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
- packages: ['clang-3.7', 'g++-8']
+ packages: ['clang-3.7', 'g++-5']
+
+
+
+
+before_script:
+- export PATH="$PATH:$HOME/.cargo/bin"
+
before_install:
+
+ - gem install bundler
+ - curl -sSL https://sh.rustup.rs | sh -s -- -y --default-toolchain=nightly --profile=minimal
+ - export PATH="$PATH:$HOME/.cargo/bin"
- sudo add-apt-repository ppa:beineri/opt-qt591-xenial -y
- sudo apt-get update -qq
- sudo apt-get install qt59base qt59websockets libgl1-mesa-dev
- source /opt/qt59/bin/qt59-env.sh
-
+
script:
+
- qmake -v
- clang++ -v
- - g++-8 -v
+ - g++-5 -v
- qmake silentdragon-lite.pro CONFIG+=release -spec linux-clang
- make CC=clang CXX=clang++ -j2
- make distclean
- qmake silentdragon-lite.pro CONFIG+=release -spec linux-g++
- res/libsodium/buildlibsodium.sh
- - make CC=gcc-8 CXX=g++-8 -j2
+ - make CC=gcc-5 CXX=g++-5 -j2
diff --git a/README.md b/README.md
index 1848931..4f21aec 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,14 @@ This means your IP address is known to these servers. Enable Tor setting in Sile
Go to the releases page and grab the latest installers or binary. https://github.com/MyHush/SilentDragonLite/releases
+### Note Management
+SilentDragonLite does automatic note and utxo management, which means it doesn't allow you to manually select which address to send outgoing transactions from. It follows these principles:
+* Defaults to sending shielded transactions, even if you're sending to a transparent address
+* Sapling funds need at least 2 confirmations before they can be spent
+* Can select funds from multiple shielded addresses in the same transaction
+* Will automatically shield your transparent funds at the first opportunity
+* When sending an outgoing transaction to a shielded address, SilentDragonLite can decide to use the transaction to additionally shield your transparent funds (i.e., send your transparent funds to your own shielded address in the same transaction)
+
## Compiling from source
* SilentDragonLite is written in C++ 14, and can be compiled with g++/clang++/visual c++.
* It also depends on Qt5, which you can get from [here](https://www.qt.io/download).
diff --git a/application.qrc b/application.qrc
index abf3ca1..3ecb9eb 100644
--- a/application.qrc
+++ b/application.qrc
@@ -14,6 +14,10 @@
res/zec_qt_wallet_de.qm
+ res/zec_qt_wallet_es.qm
+ res/zec_qt_wallet_fr.qm
+ res/zec_qt_wallet_pt.qm
+ res/zec_qt_wallet_it.qm
res/css/blue.css
diff --git a/lib/Cargo.lock b/lib/Cargo.lock
index 7b6162e..d03ea89 100644
--- a/lib/Cargo.lock
+++ b/lib/Cargo.lock
@@ -1051,7 +1051,7 @@ version = "0.1.0"
dependencies = [
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
- "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=099ad194dac6ee51474b3637d357aca0665a8181)",
+ "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=ce987b373505c19784f6482fd900fa1bb988cbce)",
]
[[package]]
@@ -1467,7 +1467,7 @@ dependencies = [
[[package]]
name = "silentdragonlitelib"
version = "0.1.0"
-source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=099ad194dac6ee51474b3637d357aca0665a8181#099ad194dac6ee51474b3637d357aca0665a8181"
+source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=ce987b373505c19784f6482fd900fa1bb988cbce#ce987b373505c19784f6482fd900fa1bb988cbce"
dependencies = [
"base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bellman 0.1.0 (git+https://github.com/DenioD/librustzcash.git?rev=caaee693c47c2ee9ecd1e1546b8fe3c714f342bc)",
@@ -2481,7 +2481,7 @@ dependencies = [
"checksum serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
"checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35"
"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d"
-"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=099ad194dac6ee51474b3637d357aca0665a8181)" = ""
+"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=ce987b373505c19784f6482fd900fa1bb988cbce)" = ""
"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
"checksum sodiumoxide 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585232e78a4fc18133eef9946d3080befdf68b906c51b621531c37e91787fa2b"
diff --git a/lib/Cargo.toml b/lib/Cargo.toml
index 2681097..faa403c 100644
--- a/lib/Cargo.toml
+++ b/lib/Cargo.toml
@@ -11,4 +11,4 @@ crate-type = ["staticlib"]
[dependencies]
libc = "0.2.58"
lazy_static = "1.4.0"
-silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "099ad194dac6ee51474b3637d357aca0665a8181" }
+silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "ce987b373505c19784f6482fd900fa1bb988cbce" }
diff --git a/lib/src/lib.rs b/lib/src/lib.rs
index 932ded9..8be7c55 100644
--- a/lib/src/lib.rs
+++ b/lib/src/lib.rs
@@ -57,6 +57,9 @@ pub extern fn litelib_initialize_new(dangerous: bool, server: *const c_char) ->
}
};
+ // Initialize logging
+ let _ = lightclient.init_logging();
+
let seed = match lightclient.do_seed_phrase() {
Ok(s) => s.dump(),
Err(e) => {
@@ -105,6 +108,9 @@ pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const
}
};
+ // Initialize logging
+ let _ = lightclient.init_logging();
+
LIGHTCLIENT.lock().unwrap().replace(Some(Arc::new(lightclient)));
let c_str = CString::new("OK").unwrap();
@@ -137,6 +143,9 @@ pub extern fn litelib_initialize_existing(dangerous: bool, server: *const c_char
}
};
+ // Initialize logging
+ let _ = lightclient.init_logging();
+
LIGHTCLIENT.lock().unwrap().replace(Some(Arc::new(lightclient)));
let c_str = CString::new("OK").unwrap();
diff --git a/res/Info.plist b/res/Info.plist
index fbd864e..aecc2d7 100644
--- a/res/Info.plist
+++ b/res/Info.plist
@@ -9,7 +9,7 @@
CFBundleIconFile
logo.icns
CFBundleIdentifier
- com.yourcompany.silentdragon
+ com.yourcompany.SilentDragonLite
CFBundlePackageType
APPL
CFBundleSignature
@@ -39,4 +39,4 @@
NSUIElement
-
\ No newline at end of file
+
diff --git a/res/zec_qt_wallet_de.qm b/res/zec_qt_wallet_de.qm
index 1c1cf22..4f47383 100644
Binary files a/res/zec_qt_wallet_de.qm and b/res/zec_qt_wallet_de.qm differ
diff --git a/res/zec_qt_wallet_de.ts b/res/zec_qt_wallet_de.ts
index 70046ef..6cf0b9a 100644
--- a/res/zec_qt_wallet_de.ts
+++ b/res/zec_qt_wallet_de.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
Wallet Passwort
-
+
Your wallet is encrypted.
Please enter your wallet password
Ihr Wallet ist verschlüsselt. Bitte geben Sie das Passwort ein
-
-
+
+
Wallet Decryption Failed
Entschlüsslung gescheitert
-
+
Please enter a valid password
Bitte geben Sie ein gültiges Passwort ein
-
+
Failed to unlock wallet
Konnte das Wallet nicht entsperren
@@ -121,37 +121,37 @@ Please enter your wallet password
Verborgen
-
+
Notarized
Notarisiert
-
+
Transparent
Sichtbar
-
+
Total
Gesamt
-
+
Your node is still syncing, balances may not be updated.
Synchronisierung noch nicht abgeschlossen. Beträge sind noch nicht aktuell.
-
+
Some transactions are not yet confirmed. Balances may change.
Einige Transaktionen sind noch nicht bestätigt.
-
+
Total notarized funds available:
Insgesammter notarisierter Betrag:
-
+
Your node is still syncing, balances may not be updated
Synchronisierung noch nicht abgeschlossen. Beträge sind noch nicht aktuell
@@ -160,13 +160,13 @@ Please enter your wallet password
Einige Transaktionen sind noch nicht bestätigt
-
+
Address Balances
Guthaben der Adresse
-
-
+
+
Send
Senden
@@ -175,192 +175,192 @@ Please enter your wallet password
Guthaben der Adresse
-
+
Send To
Sende an
-
+
Recipient
Empfänger
-
-
-
-
+
+
+
+
Address
Adresse
-
-
+
+
Address Book
Adressbuch
-
-
-
-
+
+
+
+
Amount
Betrag
-
+
Max Available
Maximal verfügbare Summe
-
-
-
-
+
+
+
+
Memo
Nachricht hinzufügen
-
+
Add Recipient
Weiteren Empfänger hinzufügen
-
+
Recurring payment
Wiederkehrende Zahlung
-
+
Every month, starting 12-May-2012, for 6 payments
Jeden Monat, startet am 12. Mai 2019, für 6 Monate
-
+
Edit Schedule
Zeitplan bearbeiten
-
-
+
+
Miner Fee
Gebühr
-
+
0
-
+
Cancel
Abbrechen
-
+
Receive
Empfangen
-
+
Address Type
Adressen Format
-
+
z-Addr
Verborgene Adresse
-
+
t-Addr
Sichtbare Adresse
-
+
New Address
Neue Adresse
-
+
View All Addresses
Alle Adressen ansehen
-
+
Label
Bezeichnung
-
+
Update Label
Bezeichnung ändern
-
+
Address balance
Guthaben der Adresse
-
+
Optional
Optional
-
-
+
+
Export Private Key
Private Key exportieren
-
+
Transactions
Transaktionen
-
+
Hush Daemon
Hush Daemon
-
+
blockHeight
Blockhöhe
-
+
Version hushlightd
Hushdlight Version
-
+
&Send DenioD Feedback
Sende DenioD Feedback
-
+
&Export seed phrase
Seed exportieren
-
+
Encrypt Wallet
Wallet verschlüsseln
-
+
Remove Wallet Encryption
Verschlüsslung entfernen
-
+
This is a Lightwallet, you cant mine with it!
Dies ist ein Lightwallet, sie können damit nicht Minen!
-
-
-
+
+
+
Loading...
Lade...
@@ -373,427 +373,437 @@ Please enter your wallet password
Version hushd light
-
+
Vendor
Vendor
-
+
|
-
+
&File
Datei
-
+
&Help
Hilfe
-
+
&Apps
Smartphone
-
+
&Edit
Bearbeiten
-
+
E&xit
Beenden
-
+
&About
Über
-
+
&Settings
Einstellungen
-
+
Ctrl+P
Ctrl+P
-
+
&Hush Discord
&Hush Discord
-
+
&Hush Website
&Hush Website
-
+
Check github.com for &updates
Überprüfe Github für Updates
-
+
&Export all private keys
Alle private Keys exportieren
-
+
Address &book
Adressbuch
-
+
Ctrl+B
Ctrl+B
-
-
+
+
Export transactions
Transaktionen exportieren
-
+
Pay hush &URI...
Zahlungs Hush &URI...
-
+
Connect mobile &app
Smartphone verbinden
-
+
Ctrl+M
Ctrl+M
-
+
&Recurring Payments
Wiederkehrende Zahlung
-
+
Request hush...
Hush anfordern...
-
+
File a bug...
Fehler melden...
-
-
+
+
Copy txid
Transaktions ID kopieren
-
+
View tx on block explorer
Transaktions ID auf dem Blockexplorer anschauen
-
+
Refresh
Aktualisieren
-
+
Restart
Neustart
-
+
Please restart Silentdragonlite to have the theme apply
Bitte starten sie SilentDragonLite neu
-
+
You're using an external hushd. Please restart hushd with -rescan
Starte SilentDragonLite neu
-
+
Some feedback about SilentDragonlite or Hush...
Etwas Feedback über SilentDragonLite...
-
+
Send Duke some private and shielded feedback about
Sende DenioD anonym Feedback über
-
+
or SilentDragonLite
oder SilentDragonLite
-
+
Paste HUSH URI
Hush URI einfügen
-
+
Error paying HUSH URI
Fehler bei HUSH URI
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
Die URI sollte folgendemaßen aussehen 'hush:<addr>?amt=x&memo=y
-
+
Error
Fehler
-
+
Error exporting transactions, file was not saved
Fehler beim exportieren der Transaktionen. Die Datei wurde nicht gespeichert
-
+
Error getting private keys
Fehler beim empfangen der private Keys
-
+
Error loading private keys:
Fehler beim laden der private Keys:
-
+
These are all the private keys for all the addresses in your wallet
Dies sind alle private Keys für ihr Wallet
-
+
Private key for
Private Key für
-
-
+
+
Save File
Datei sichern
-
+
Wallet is already encrypted
SilentDragonLite ist bereits verschlüsselt
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
SilentDragonLite ist bereits mit einem Passwort verschlüsselt. Bitte benutzen Sie die Funktion 'Verschlüsselung entfernen'.
-
+
Passwords don't match
Passwort falsch
-
+
Error was:
Der Fehler war:
-
+
Wallet Encrypted
SilentDragonLite verschlüsselt
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
SilentDragonLite wurde erfolgreich verschlüsselt. Sie benötigen Ihr Passwort um Zahlungen zu senden oder Ihre private Keys zu exportieren.
-
-
+
+
Wallet Encryption Failed
Verschlüsslung gescheitert
-
+
Wallet is not encrypted
SilentDragonLite ist nicht verschlüsselt
-
+
Your wallet is not encrypted with a password.
SilentDragonLite ist nicht mit einem Passwort verschlüsselt.
-
+
Wallet Password
SilentDragonLite Passwort
-
+
Please enter your wallet password
Bitte geben sie Ihr Passwort ein
-
-
-
+
+
+
Wallet Decryption Failed
SilentDragonLite konnte nicht entschlüsselt werden
-
+
Please enter a password to decrypt your wallet!
Bitte geben Sie das Passwort ein, um SilentDragonLite zu entschlüsseln!
-
+
Wallet Encryption Removed
Verschlüsselung wurde entfernt
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
SilentDragonLite wurde erfolgreich entschlüsselt. Sie benötigen Ihr Passwort nicht mehr.
-
+
+ Currency Change
+ Währungszeichen wechseln
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+ Bitte starten sie SilentDragonLite neu
+
+
+
This is your wallet seed. Please back it up carefully and safely.
Dies ist Ihr SilentDragonLite Seed. Bitte sichern Sie ihn sorgfältig.
-
-
+
+
Unable to open file
Konnte die Datei nicht öffnen
-
-
+
+
Copy address
Adresse kopieren
-
-
-
+
+
+
Copied to clipboard
In die Zwischenablage kopiert
-
+
Get private key
Private Key erhalten
-
-
+
+
View on block explorer
Auf dem Blockexplorer anschauen
-
+
View Payment Request
Zahlungsanforderung ansehen
-
+
View Memo
Nachricht ansehen
-
+
Reply to
Antworten an
-
+
Created new t-Addr
Neue sichtbare Adresse erstellen
-
+
Copy Address
Adresse kopieren
-
+
Address has been previously used
Diese Adresse wurde schon einmal benutzt
-
+
Address is unused
Adresse ist unbenutzt
-
+
Cannot support multiple addresses
Keine Unterstützung für mehrere Adressen
-
+
Recurring payments doesn't currently support multiple addresses
Wiederkehrende Zahlungen unterstützen noch keine multiplen Adressen
-
+
Recipient
Empfänger
-
+
Only z-addresses can have memos
Nur verborgene Adressen können Nachrichten enthalten
-
+
Memos can only be used with z-addresses
Nur verborgene Adressen können Nachrichten enthalten
-
+
The memo field can only be used with a z-address.
Nur verborgene Adressen können Nachrichten enthalten.
-
+
doesn't look like a z-address
sieht nicht nach einer verborgenen Adresse aus (Zs...)
-
+
Please wait...
Bitte warten...
-
+
Computing your transaction
Generiere Ihre Transaktion
-
+
Done!
Fertig!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -808,22 +818,22 @@ Sie benötigen:%2
Anmerkung: Sie bnötigen 2 Bestätigungen
-
+
Transaction Error
Fehler bei der Transaktion
-
+
Recipient Address
Adresse des Empfängers
-
+
is Invalid
ist ungültig
-
+
Amount for address '%1' is invalid!
Betrag für die Adresse '%1' ist nicht gültig!
@@ -1070,14 +1080,14 @@ Anmerkung: Sie bnötigen 2 Bestätigungen
-
+
Connection Error
Verbsindungsfehler
-
-
+
+
Transaction Error
Transaktionsfehler
@@ -1087,49 +1097,49 @@ Anmerkung: Sie bnötigen 2 Bestätigungen
Es gab einen Fehler beim senden der Transaktion:
+
-
No Connection
keine Verbindung
-
+
There was an error connecting to hushd. The error was
Es gab einen Fehler zum server zu verbinden
-
-
-
+
+
+
Tx
Transaktion
-
-
-
+
+
+
failed
gescheitert
-
-
+
+
The transaction with id
Die Transaktion mit der ID
-
-
+
+
failed. The error was
ist gescheitert
-
+
Update Available
Update verfügbar
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
@@ -1138,58 +1148,58 @@ Would you like to visit the releases page?
Möchten Sie die Release Seite besuchen?
-
+
No updates available
keine Updates verfügbar
-
+
You already have the latest release v%1
Sie haben bereits die neueste Version v%1
-
+
Please wait for SilentDragonLite to exit
Bitte warten Sie bis SilentDragonLite beendet ist
-
+
Waiting for hushd to exit
Warten auf beendigung der Serververbindung
-
+
No hush price was available to convert from USD
Kein Hush Preis verfügbar
-
+
View on block explorer
Auf dem Blockexplorer anschauen
-
+
View Error
Fehler ansehen
-
+
Reported Error
Fehler melden
-
-
+
+
Are you sure you want to delete the recurring payment?
Sind Sie sicher, dass Sie die wiederkehrende Zahlung löschen wollen?
-
+
All future payments will be cancelled.
Alle geplanten zukünftigen Zahlungen werden nicht durchgeführt.
-
+
Tx submitted (right click to copy) txid:
Transaktions ID übermittelt (Rechtsklick zum anschauen) :
@@ -1260,37 +1270,37 @@ Möchten Sie die Release Seite besuchen?
RecurringListViewModel
-
+
Amount
Betrag
-
+
Schedule
Geplant
-
+
Payments Left
Zahlungen übrig
-
+
Next Payment
Nächste Zahlung
-
+
To
An
-
+
Every
Immer
-
+
None
Keine
@@ -1306,48 +1316,48 @@ Möchten Sie die Release Seite besuchen?
RecurringPaymentsListViewModel
-
+
Date
Datum
-
+
Status
Status
-
+
Txid
Transaktions ID
-
+
Not due yet
Noch nicht fällig
-
+
Pending
Schwebend
-
+
Skipped
Übersprungen
-
+
Paid
Bezahlt
-
+
Error
Fehler
-
-
+
+
Unknown
Unbekannt
@@ -1493,17 +1503,17 @@ Möchten Sie die Release Seite besuchen?
Zahlen an
-
+
Pay
Bezahlen
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
Sie bezahlen eine Zahlungsanfrage. Ihre Adresse wird nicht sichtbar sein.
-
+
Can only request from Sapling addresses
Anfragen nur von sicheren Adressen
@@ -1593,32 +1603,31 @@ Möchten Sie die Release Seite besuchen?
Optionen
-
+
Connect to github on startup to check for updates
Überprüfe Github für Updates
-
+
Connect to the internet to fetch hush prices
Hush Preise abrufen (dies kann Ihre Privatssphäre einschränken)
-
+
Check github for updates at startup
Überprüfe Github beim Start auf Updates
-
Fetch hush / USD prices
- Hush Preise abrufen
+ Hush Preise abrufen
-
+
Theme
Design
-
+
default
Normal
@@ -1633,32 +1642,87 @@ Möchten Sie die Release Seite besuchen?
Server
-
+
blue
Blau
-
+
light
Hell
-
+
dark
Dark
-
+
+ Fetch hush prices
+ Hush Preise abrufen
+
+
+
+ Currency
+ Währung
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
Problembehebung
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
Das Wallet neu scannen um das Guthaben zu aktuallisieren
-
+
Rescan
Neu Scannen
@@ -1781,8 +1845,12 @@ Möchten Sie die Release Seite besuchen?
Erweiterte Einstellungen anzeigen
-
Allow connections to the internet to check for updates, get hush/USD prices etc...
+ Hush Preise abrufen (dies kann Ihre Privatssphäre einschränken)...
+
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
Hush Preise abrufen (dies kann Ihre Privatssphäre einschränken)...
diff --git a/res/zec_qt_wallet_es.ts b/res/zec_qt_wallet_es.ts
index 9dd21c4..3fce010 100644
--- a/res/zec_qt_wallet_es.ts
+++ b/res/zec_qt_wallet_es.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -121,660 +121,670 @@ Please enter your wallet password
-
+
Notarized
-
+
Transparent
-
+
Total
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Your node is still syncing, balances may not be updated
-
+
Address Balances
-
-
+
+
Send
-
+
Send To
-
+
Recipient
-
-
-
-
+
+
+
+
Address
-
-
+
+
Address Book
-
-
-
-
+
+
+
+
Amount
-
+
Max Available
-
-
-
-
+
+
+
+
Memo
-
+
Add Recipient
-
+
Recurring payment
-
+
Every month, starting 12-May-2012, for 6 payments
-
+
Edit Schedule
-
-
+
+
Miner Fee
-
+
0
-
+
Cancel
-
+
Receive
-
+
Address Type
-
+
z-Addr
-
+
t-Addr
-
+
New Address
-
+
View All Addresses
-
+
Label
-
+
Update Label
-
+
Address balance
-
+
Optional
-
-
+
+
Export Private Key
-
+
Transactions
-
+
Hush Daemon
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
&Export seed phrase
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
-
+
This is a Lightwallet, you cant mine with it!
-
-
-
+
+
+
Loading...
-
+
Vendor
-
+
|
-
+
&File
-
+
&Help
-
+
&Apps
-
+
&Edit
-
+
E&xit
-
+
&About
-
+
&Settings
-
+
Ctrl+P
-
+
&Hush Discord
-
+
&Hush Website
-
+
Check github.com for &updates
-
+
&Export all private keys
-
+
Address &book
-
+
Ctrl+B
-
-
+
+
Export transactions
-
+
Pay hush &URI...
-
+
Connect mobile &app
-
+
Ctrl+M
-
+
&Recurring Payments
-
+
Request hush...
-
+
File a bug...
-
-
+
+
Copy txid
-
+
View tx on block explorer
-
+
Refresh
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
You're using an external hushd. Please restart hushd with -rescan
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
-
+
Error
-
+
Error exporting transactions, file was not saved
-
+
Error getting private keys
-
+
Error loading private keys:
-
+
These are all the private keys for all the addresses in your wallet
-
+
Private key for
-
-
+
+
Save File
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
-
-
+
+
Copy address
-
-
-
+
+
+
Copied to clipboard
-
+
Get private key
-
-
+
+
View on block explorer
-
+
View Payment Request
-
+
View Memo
-
+
Reply to
-
+
Created new t-Addr
-
+
Copy Address
-
+
Address has been previously used
-
+
Address is unused
-
+
Cannot support multiple addresses
-
+
Recurring payments doesn't currently support multiple addresses
-
+
Recipient
-
+
Only z-addresses can have memos
-
+
Memos can only be used with z-addresses
-
+
The memo field can only be used with a z-address.
-
+
doesn't look like a z-address
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -784,22 +794,22 @@ Note: Funds need 5 confirmations before they can be spent
-
+
Transaction Error
-
+
Recipient Address
-
+
is Invalid
-
+
Amount for address '%1' is invalid!
@@ -1046,14 +1056,14 @@ Note: Funds need 5 confirmations before they can be spent
-
+
Connection Error
-
-
+
+
Transaction Error
@@ -1063,107 +1073,107 @@ Note: Funds need 5 confirmations before they can be spent
+
-
No Connection
-
+
There was an error connecting to hushd. The error was
-
-
-
+
+
+
Tx
-
-
-
+
+
+
failed
-
-
+
+
The transaction with id
-
-
+
+
failed. The error was
-
+
Update Available
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
-
+
No updates available
-
+
You already have the latest release v%1
-
+
Please wait for SilentDragonLite to exit
-
+
Waiting for hushd to exit
-
+
No hush price was available to convert from USD
-
+
View on block explorer
-
+
View Error
-
+
Reported Error
-
-
+
+
Are you sure you want to delete the recurring payment?
-
+
All future payments will be cancelled.
-
+
Tx submitted (right click to copy) txid:
@@ -1234,37 +1244,37 @@ Would you like to visit the releases page?
RecurringListViewModel
-
+
Amount
-
+
Schedule
-
+
Payments Left
-
+
Next Payment
-
+
To
-
+
Every
-
+
None
@@ -1280,48 +1290,48 @@ Would you like to visit the releases page?
RecurringPaymentsListViewModel
-
+
Date
-
+
Status
-
+
Txid
-
+
Not due yet
-
+
Pending
-
+
Skipped
-
+
Paid
-
+
Error
-
-
+
+
Unknown
@@ -1467,17 +1477,17 @@ Would you like to visit the releases page?
-
+
Pay
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
-
+
Can only request from Sapling addresses
@@ -1567,32 +1577,27 @@ Would you like to visit the releases page?
-
+
Connect to github on startup to check for updates
-
+
Connect to the internet to fetch hush prices
-
+
Check github for updates at startup
-
- Fetch hush / USD prices
-
-
-
-
+
Theme
-
+
default
@@ -1607,32 +1612,87 @@ Would you like to visit the releases page?
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
-
+
Rescan
@@ -1756,7 +1816,7 @@ Would you like to visit the releases page?
- Allow connections to the internet to check for updates, get hush/USD prices etc...
+ Allow connections to the internet to check for updates, get hush prices etc...
diff --git a/res/zec_qt_wallet_fr.qm b/res/zec_qt_wallet_fr.qm
index ffff939..ae87b38 100644
Binary files a/res/zec_qt_wallet_fr.qm and b/res/zec_qt_wallet_fr.qm differ
diff --git a/res/zec_qt_wallet_fr.ts b/res/zec_qt_wallet_fr.ts
index 103be97..254fd8a 100644
--- a/res/zec_qt_wallet_fr.ts
+++ b/res/zec_qt_wallet_fr.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -121,37 +121,37 @@ Please enter your wallet password
Privé
-
+
Notarized
-
+
Transparent
Transparant
-
+
Total
Total
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Your node is still syncing, balances may not be updated
@@ -160,13 +160,13 @@ Please enter your wallet password
Certaines transactions ne sont pas encore confirmées
-
+
Address Balances
Solde des adresses
-
-
+
+
Send
Envoyer
@@ -179,145 +179,145 @@ Please enter your wallet password
Solde de l'adresse
-
+
Send To
Envoyer à
-
+
Recipient
Destinataire
-
-
-
-
+
+
+
+
Address
Adresse
-
-
+
+
Address Book
Carnet d'adresses
-
-
-
-
+
+
+
+
Amount
Montant
-
+
Max Available
Maximum disponible
-
-
-
-
+
+
+
+
Memo
Mémo
-
+
Add Recipient
Ajouter un destinataire
-
+
Recurring payment
-
+
Every month, starting 12-May-2012, for 6 payments
-
+
Edit Schedule
-
-
+
+
Miner Fee
I replaced this with "transaction fee" which sounds much better in French.. I hope it's correct too..
Frais de transaction
-
+
0
0
-
+
Cancel
Annuler
-
+
Receive
Recevoir
-
+
Address Type
Type d'adresse
-
+
Hush Daemon
-
+
This is a Lightwallet, you cant mine with it!
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
&Export seed phrase
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
-
+
&Hush Discord
-
+
&Hush Website
@@ -326,7 +326,7 @@ Please enter your wallet password
Adresse-z(Sapling)
-
+
t-Addr
Adresse-t
@@ -335,33 +335,33 @@ Please enter your wallet password
Adresse-z(Sprout)
-
+
New Address
Nouvelle Adresse
-
+
Label
Etiquette
-
+
Update Label
Mettre à jour l'étiquette
-
+
Address balance
Solde de l'adresse
-
+
Optional
Optionnel
-
-
+
+
Export Private Key
Exporter la clef privée
@@ -370,17 +370,17 @@ Please enter your wallet password
Adresse utilisée
-
+
z-Addr
-
+
View All Addresses
-
+
Transactions
Transactions
@@ -393,9 +393,9 @@ Please enter your wallet password
Vous ne minez pas à présent
-
-
-
+
+
+
Loading...
Chargement...
@@ -408,54 +408,54 @@ Please enter your wallet password
Taux de solution du réseau
-
+
Vendor
Connections
-
+
|
|
-
+
&File
&Fichier
-
+
&Help
&Aide
-
+
&Apps
&Applications
-
+
&Edit
&Edition
-
+
E&xit
Q&uiter
-
+
&About
&À propos
-
+
&Settings
&Préférences
-
+
Ctrl+P
Ctrl+P
@@ -464,7 +464,7 @@ Please enter your wallet password
&Faire un don
-
+
Check github.com for &updates
Vérifier &github.com pour des mises à jour
@@ -481,7 +481,7 @@ Please enter your wallet password
&Importer une clef privée
-
+
&Export all private keys
&Exporter toutes les clefs privées
@@ -494,12 +494,12 @@ Please enter your wallet password
Ctrl+A, Ctrl+Z
-
+
Address &book
Carnet &d'adresse
-
+
Ctrl+B
Ctrl+B
@@ -508,38 +508,38 @@ Please enter your wallet password
&Sauvegarder "wallet.dat"
-
-
+
+
Export transactions
Exporter les transactions
-
+
Pay hush &URI...
PAyer une URI hush
-
+
Connect mobile &app
-
+
Ctrl+M
-
+
&Recurring Payments
-
+
Request hush...
-
+
File a bug...
@@ -548,7 +548,7 @@ Please enter your wallet password
La configuration de Tor est disponible uniquement lors de l'exécution du processus hushd intégré.
-
+
You're using an external hushd. Please restart hushd with -rescan
@@ -601,12 +601,12 @@ Please enter your wallet password
Rescan de l'import de la clef privée achevé
-
+
View tx on block explorer
-
+
Refresh
@@ -615,7 +615,7 @@ Please enter your wallet password
Erreur lors du payement du URI hush
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
Le format URI doit être comme suit: 'hush:<addr>?amt=x&memo=y
@@ -640,12 +640,12 @@ Please enter your wallet password
Les clef seront importées dans votre noeud hushd connecté
-
+
Error
Erreur
-
+
Error exporting transactions, file was not saved
Erreur lors de l'exportation des transactions. Le fichier n'a pas été sauvegardé.
@@ -678,137 +678,147 @@ Please enter your wallet password
Vous devez le sauvegarder manuellement.
-
+
These are all the private keys for all the addresses in your wallet
Ce sont toutes les clés privées pour toutes les adresses de votre portefeuille
-
+
Private key for
Clef privée pour
-
-
+
+
Save File
Sauvegarder le fichier
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
mpossible d'ouvrir le fichier
-
+
Error getting private keys
-
+
Error loading private keys:
-
-
+
+
Copy address
Copier l'adresse
-
-
-
+
+
+
Copied to clipboard
Copié dans le presse-papier
-
+
Get private key
Obtenir la clef privée
@@ -817,8 +827,8 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Rendre privé le solde vers Sapling
-
-
+
+
View on block explorer
Voir dans l'explorateur de block
@@ -827,127 +837,127 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Migrer vers Sapling
-
-
+
+
Copy txid
Copier l'ID de transaction
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
View Payment Request
-
+
View Memo
Voir le mémo
-
+
Reply to
Répondre à
-
+
Created new t-Addr
Nouvelle Adresse-t créée
-
+
Copy Address
-
+
Address has been previously used
L'adresse a été utilisée précédemment.
-
+
Address is unused
L'adresse est inutilisée.
-
+
Recipient
Destinataire
-
+
Only z-addresses can have memos
Seules les Adresses-z peuvent avoir un mémo
-
+
Memos can only be used with z-addresses
Les mémos peuvent seulement être utilisés avec des Adresses-z
-
+
The memo field can only be used with a z-address.
Le champs mémo ne peut uniquement être utilisé avec une adresse-z.
-
+
doesn't look like a z-address
Cette adresse ne semble pas être de type adresse-z
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -961,12 +971,12 @@ Note: Funds need 5 confirmations before they can be spent
Répondre à
-
+
Cannot support multiple addresses
-
+
Recurring payments doesn't currently support multiple addresses
@@ -983,7 +993,7 @@ Note: Funds need 5 confirmations before they can be spent
Solde après cette Tx:
-
+
Transaction Error
Erreur de transaction
@@ -992,17 +1002,17 @@ Note: Funds need 5 confirmations before they can be spent
L'adresse de l'émetteur est invalide
-
+
Recipient Address
Adresse du destinataire
-
+
is Invalid
est invalide
-
+
Amount for address '%1' is invalid!
@@ -1275,33 +1285,33 @@ Not starting embedded hushd because --no-embedded was passed
hushd n'a aucune connexion à un pair
-
+
There was an error connecting to hushd. The error was
Une erreur est survenue lors de la connection à hushd. L'erreur est
-
-
+
+
The transaction with id
La transaction avec ID
-
-
+
+
failed. The error was
a échoué. L'erreur était
-
-
-
+
+
+
failed
a échoué
-
-
-
+
+
+
Tx
Tx
@@ -1310,29 +1320,29 @@ Not starting embedded hushd because --no-embedded was passed
tx en cours de calcul. Ceci peut prendre quelques minutes.
-
+
Update Available
MàJ disponible
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
Voulez-vous visiter la page des nouvelles versions ?
-
+
No updates available
Pas de MàJ disponible
-
+
You already have the latest release v%1
Vous utilisez déjà la dernière version v%1
-
+
Please wait for SilentDragonLite to exit
@@ -1341,7 +1351,7 @@ Would you like to visit the releases page?
Veuillez patienter. Fermeture de silentdragon en cours
-
+
Waiting for hushd to exit
Attente de la fermeture de hushd
@@ -1394,14 +1404,14 @@ Veuillez configurer l'hôte/port et utilisateur/mot de passe dans le menu E
-
+
Connection Error
Erreur de connection
-
-
+
+
Transaction Error
Erreur de transaction
@@ -1411,8 +1421,8 @@ Veuillez configurer l'hôte/port et utilisateur/mot de passe dans le menu E
Une erreur est survenue en envoyant la transaction. L'erreur est:
+
-
No Connection
Pas de connection
@@ -1491,7 +1501,7 @@ Veuillez configurer l'hôte/port et utilisateur/mot de passe dans le menu E
Effacer l'étiquette
-
+
Tx submitted (right click to copy) txid:
Tx soumise. (clic droit pour copier) txid:
@@ -1555,33 +1565,33 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
-
+
No hush price was available to convert from USD
-
+
View on block explorer
Voir dans l'explorateur de block
-
+
View Error
-
+
Reported Error
-
-
+
+
Are you sure you want to delete the recurring payment?
-
+
All future payments will be cancelled.
@@ -1607,37 +1617,37 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
RecurringListViewModel
-
+
Amount
Montant
-
+
Schedule
-
+
Payments Left
-
+
Next Payment
-
+
To
À
-
+
Every
-
+
None
@@ -1653,48 +1663,48 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
RecurringPaymentsListViewModel
-
+
Date
-
+
Status
-
+
Txid
-
+
Not due yet
-
+
Pending
-
+
Skipped
-
+
Paid
-
+
Error
Erreur
-
-
+
+
Unknown
@@ -1840,17 +1850,17 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
-
+
Pay
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
-
+
Can only request from Sapling addresses
@@ -1960,7 +1970,7 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
Options
-
+
Check github for updates at startup
@@ -1977,27 +1987,22 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
Se connecter via Tor
-
+
Connect to github on startup to check for updates
-
+
Connect to the internet to fetch hush prices
-
- Fetch hush / USD prices
-
-
-
-
+
Theme
-
+
default
@@ -2012,32 +2017,87 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
-
+
Rescan
@@ -2257,11 +2317,6 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
Enable Fast Sync
-
-
- Allow connections to the internet to check for updates, get hush/USD prices etc...
-
-
Use custom datadir
@@ -2287,6 +2342,11 @@ Vous avez soit des fonds non confirmés soit le solde est trop petit pour une mi
Choose directory
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
+
+
Connect over Tor
diff --git a/res/zec_qt_wallet_it.qm b/res/zec_qt_wallet_it.qm
index d54501f..e130895 100644
Binary files a/res/zec_qt_wallet_it.qm and b/res/zec_qt_wallet_it.qm differ
diff --git a/res/zec_qt_wallet_it.ts b/res/zec_qt_wallet_it.ts
index b8a7dc5..5d52936 100644
--- a/res/zec_qt_wallet_it.ts
+++ b/res/zec_qt_wallet_it.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -123,37 +123,37 @@ Please enter your wallet password
Shielded
-
+
Notarized
-
+
Transparent
Trasparente
-
+
Total
Totale
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Your node is still syncing, balances may not be updated
@@ -162,13 +162,13 @@ Please enter your wallet password
Rilevate transazioni non ancora confermate
-
+
Address Balances
Saldo degli indirizzi
-
-
+
+
Send
Invia
@@ -182,145 +182,145 @@ Please enter your wallet password
Saldo Indirizzo
-
+
Send To
Inviare a
-
+
Recipient
Destinatario
-
-
-
-
+
+
+
+
Address
Indirizzo
-
-
+
+
Address Book
Rubrica
-
-
-
-
+
+
+
+
Amount
check
Importo
-
+
Max Available
Invia tutto
-
-
-
-
+
+
+
+
Memo
Memo
-
+
Add Recipient
Aggiungi alla rubrica
-
+
Recurring payment
-
+
Every month, starting 12-May-2012, for 6 payments
-
+
Edit Schedule
-
-
+
+
Miner Fee
Commissioni di rete
-
+
0
0
-
+
Cancel
Annulla
-
+
Receive
Ricevi
-
+
Address Type
Tipo Indirizzo
-
+
Hush Daemon
-
+
This is a Lightwallet, you cant mine with it!
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
&Export seed phrase
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
-
+
&Hush Discord
-
+
&Hush Website
@@ -329,7 +329,7 @@ Please enter your wallet password
z-Addr(Sapling)
-
+
t-Addr
t-Addr (Trasparente)
@@ -338,48 +338,48 @@ Please enter your wallet password
z-Addr(Legacy Sprout)
-
+
z-Addr
-
+
New Address
Crea Indirizzo
-
+
View All Addresses
-
+
Label
Etichetta
-
+
Update Label
Aggiorna etichetta
-
+
Address balance
-
+
Optional
Opzionale
-
-
+
+
Export Private Key
Esporta la chiave privata
-
+
Transactions
Transazioni
@@ -392,9 +392,9 @@ Please enter your wallet password
Al momento non stai minando
-
-
-
+
+
+
Loading...
Caricamento...
@@ -409,54 +409,54 @@ Please enter your wallet password
Potenza di calcolo Network
-
+
Vendor
Connessioni attive
-
+
|
|
-
+
&File
&File
-
+
&Help
&Aiuto
-
+
&Apps
&Apps
-
+
&Edit
&Modifica
-
+
E&xit
&Esci
-
+
&About
&About
-
+
&Settings
&Impostazioni
-
+
Ctrl+P
Ctrl+P
@@ -465,7 +465,7 @@ Please enter your wallet password
&Dona
-
+
Check github.com for &updates
Controllo nuovi &aggiornamenti
@@ -482,7 +482,7 @@ Please enter your wallet password
&Importa chiave privata
-
+
&Export all private keys
&Esporta tutte le chiavi private
@@ -495,13 +495,13 @@ Please enter your wallet password
Ctrl+A, Ctrl+Z
-
+
Address &book
check
Rubrica &Contatti
-
+
Ctrl+B
Ctrl+B
@@ -510,38 +510,38 @@ Please enter your wallet password
&Backup wallet.dat
-
-
+
+
Export transactions
-
+
Pay hush &URI...
-
+
Connect mobile &app
-
+
Ctrl+M
-
+
&Recurring Payments
-
+
Request hush...
-
+
File a bug...
@@ -578,22 +578,22 @@ Please enter your wallet password
L'importazione delle chiavi private è stata completata
-
+
You're using an external hushd. Please restart hushd with -rescan
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
-
+
View tx on block explorer
-
+
Refresh
@@ -607,12 +607,12 @@ Please enter your wallet password
Le chiavi saranno importate nel tuo nodo hushd
-
+
Error
-
+
Error exporting transactions, file was not saved
@@ -645,137 +645,147 @@ Please enter your wallet password
Devi eseguire il backup manualmente.
-
+
These are all the private keys for all the addresses in your wallet
Queste sono le chiavi private per tutti gli indirizzi nel tuo portafoglio
-
+
Private key for
Chiave privata per
-
-
+
+
Save File
Salva File
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
Impossibile aprire il file
-
+
Error getting private keys
-
+
Error loading private keys:
-
-
+
+
Copy address
Copia indirizzo
-
-
-
+
+
+
Copied to clipboard
Copiato negli appunti
-
+
Get private key
Ottieni una chiave privata
@@ -784,8 +794,8 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Trasferisci il saldo su un indirizzo shielded Sapling
-
-
+
+
View on block explorer
Guarda sul block-explorer
@@ -794,135 +804,135 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Migra a Sapling
-
-
+
+
Copy txid
Copia txid
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
View Payment Request
-
+
View Memo
Visualizza memo
-
+
Reply to
-
+
Created new t-Addr
Crea nuovo t-Addr
-
+
Copy Address
-
+
Address has been previously used
-
+
Address is unused
-
+
Cannot support multiple addresses
-
+
Recurring payments doesn't currently support multiple addresses
-
+
Recipient
Destinatario
-
+
Only z-addresses can have memos
Solo gli indirizzi shielded (z-address) possono avere le memo
-
+
Memos can only be used with z-addresses
Le memos possono essere utilizzate solo con z-addresses (Shielded)
-
+
The memo field can only be used with a z-address.
Il campo memo può essere utilizzato solo con z-address (Shielded)
-
+
doesn't look like a z-address
Non sembra uno z-address (Shielded)
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -937,7 +947,7 @@ Note: Funds need 5 confirmations before they can be spent
Cambiare da
-
+
Transaction Error
Errore di transazione
@@ -947,17 +957,17 @@ Note: Funds need 5 confirmations before they can be spent
L'indirizzo selezionato non è valido
-
+
Recipient Address
Indirizzo Destinatario
-
+
is Invalid
non valido
-
+
Amount for address '%1' is invalid!
@@ -1222,33 +1232,33 @@ Non è stato avviato hushd integrato perché è stato passato il comando --no-em
Connesso a hushd
-
+
There was an error connecting to hushd. The error was
Si è verificato un errore durante la connessione a hushd. L'errore era
-
-
+
+
The transaction with id
La transazione con id
-
-
+
+
failed. The error was
fallito. l'errore era
-
-
-
+
+
+
failed
fallito
-
-
-
+
+
+
Tx
Tx
@@ -1257,29 +1267,29 @@ Non è stato avviato hushd integrato perché è stato passato il comando --no-em
computazione Tx. Questo può richiedere diversi minuti.
-
+
Update Available
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
-
+
No updates available
-
+
You already have the latest release v%1
-
+
Please wait for SilentDragonLite to exit
@@ -1289,7 +1299,7 @@ Would you like to visit the releases page?
Si prega di attendere che silentdragon finisca la procedura di uscita
-
+
Waiting for hushd to exit
vedi appunto precedente
Attendere l'uscita di hushd
@@ -1342,14 +1352,14 @@ Impostare host/porta e utente/password nel menu Modifica-> Impostazioni.
-
+
Connection Error
Errore di Connessione
-
-
+
+
Transaction Error
Errore di transazione
@@ -1359,8 +1369,8 @@ Impostare host/porta e utente/password nel menu Modifica-> Impostazioni.Si è verificato un errore durante l'invio della transazione. L'errore era:
+
-
No Connection
Nessuna connessione
@@ -1439,7 +1449,7 @@ Impostare host/porta e utente/password nel menu Modifica-> Impostazioni.elimina l'etichetta
-
+
Tx submitted (right click to copy) txid:
Tx inviato (clic destro per copiare) txid:
@@ -1503,33 +1513,33 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
-
+
No hush price was available to convert from USD
-
+
View on block explorer
Guarda sul block-explorer
-
+
View Error
-
+
Reported Error
-
-
+
+
Are you sure you want to delete the recurring payment?
-
+
All future payments will be cancelled.
@@ -1555,37 +1565,37 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
RecurringListViewModel
-
+
Amount
-
+
Schedule
-
+
Payments Left
-
+
Next Payment
-
+
To
-
+
Every
-
+
None
@@ -1601,48 +1611,48 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
RecurringPaymentsListViewModel
-
+
Date
-
+
Status
-
+
Txid
-
+
Not due yet
-
+
Pending
-
+
Skipped
-
+
Paid
-
+
Error
-
-
+
+
Unknown
@@ -1788,17 +1798,17 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
-
+
Pay
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
-
+
Can only request from Sapling addresses
@@ -1908,7 +1918,7 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
Opzioni
-
+
Check github for updates at startup
@@ -1917,27 +1927,22 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
Le transazioni Shielded vengono salvate localmente e visualizzate nella scheda delle transazioni. Se deselezioni questa opzione, le transazioni Shielded non verranno visualizzate nella scheda delle transazioni.
-
+
Connect to github on startup to check for updates
-
+
Connect to the internet to fetch hush prices
-
- Fetch hush / USD prices
-
-
-
-
+
Theme
-
+
default
@@ -1952,32 +1957,87 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
-
+
Rescan
@@ -2195,11 +2255,6 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
Enable Fast Sync
-
-
- Allow connections to the internet to check for updates, get hush/USD prices etc...
-
-
Use custom datadir
@@ -2225,6 +2280,11 @@ Avete fondi non confermati o il saldo è troppo basso per una migrazione automat
Choose directory
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
+
+
Connect over Tor
diff --git a/res/zec_qt_wallet_pt.qm b/res/zec_qt_wallet_pt.qm
index df2a064..38c65a2 100644
Binary files a/res/zec_qt_wallet_pt.qm and b/res/zec_qt_wallet_pt.qm differ
diff --git a/res/zec_qt_wallet_pt.ts b/res/zec_qt_wallet_pt.ts
index fcadec8..2565455 100644
--- a/res/zec_qt_wallet_pt.ts
+++ b/res/zec_qt_wallet_pt.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -121,17 +121,17 @@ Please enter your wallet password
Blindado
-
+
Notarized
-
+
Transparent
Transparente
-
+
Total
Total
@@ -140,13 +140,13 @@ Please enter your wallet password
Existem transações não confirmadas ainda
-
+
Address Balances
Saldo dos Endereços
-
-
+
+
Send
Enviar
@@ -159,144 +159,144 @@ Please enter your wallet password
Saldo do Endereço
-
+
Send To
Enviar para
-
+
Recipient
Destinatário
-
-
-
-
+
+
+
+
Address
Endereço
-
-
+
+
Address Book
Agenda
-
-
-
-
+
+
+
+
Amount
Quantidade
-
+
Max Available
Máximo disponível
-
-
-
-
+
+
+
+
Memo
Anexar recado
-
+
Add Recipient
Adicionar destinatário
-
+
Recurring payment
-
+
Every month, starting 12-May-2012, for 6 payments
-
+
Edit Schedule
-
-
+
+
Miner Fee
Taxa de mineração
-
+
0
0
-
+
Cancel
Cancelar
-
+
Receive
Receber
-
+
Address Type
Tipo de Endereço
-
+
Hush Daemon
-
+
This is a Lightwallet, you cant mine with it!
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
&Export seed phrase
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
-
+
&Hush Discord
-
+
&Hush Website
@@ -305,7 +305,7 @@ Please enter your wallet password
z-Addr(Sapling)
-
+
t-Addr
t-Addr
@@ -314,68 +314,68 @@ Please enter your wallet password
z-Addr(Sprout)
-
+
New Address
Novo Endereço
-
+
Label
Etiqueta
-
+
Update Label
Atualizar
-
+
Address balance
-
+
Optional
Opcional
-
-
+
+
Export Private Key
Exportar Chave Privada
-
+
z-Addr
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Your node is still syncing, balances may not be updated
-
+
View All Addresses
-
+
Transactions
Transações
@@ -388,9 +388,9 @@ Please enter your wallet password
Você não está minerando atualmente
-
-
-
+
+
+
Loading...
Carregando...
@@ -403,54 +403,54 @@ Please enter your wallet password
Taxa de soluções da rede
-
+
Vendor
Conexões
-
+
|
|
-
+
&File
&Arquivo
-
+
&Help
&Ajuda
-
+
&Apps
&Aplicações
-
+
&Edit
&Editar
-
+
E&xit
Sair
-
+
&About
&Sobre
-
+
&Settings
&Preferências
-
+
Ctrl+P
Ctrl+P
@@ -459,7 +459,7 @@ Please enter your wallet password
&Doar
-
+
Check github.com for &updates
&Checar github.com por atualizações
@@ -476,7 +476,7 @@ Please enter your wallet password
&Importar chave privada
-
+
&Export all private keys
&Exportar todas as chaves privadas
@@ -489,12 +489,12 @@ Please enter your wallet password
Ctrl+A, Ctrl+Z
-
+
Address &book
&Agenda de Endereços
-
+
Ctrl+B
Ctrl+B
@@ -503,43 +503,43 @@ Please enter your wallet password
&Salvar wallet.dat
-
-
+
+
Export transactions
-
+
Pay hush &URI...
-
+
Connect mobile &app
-
+
Ctrl+M
-
+
&Recurring Payments
-
+
Request hush...
-
+
File a bug...
-
+
You're using an external hushd. Please restart hushd with -rescan
@@ -576,17 +576,17 @@ Please enter your wallet password
Re-escan de chave privada completo
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
-
+
View tx on block explorer
-
+
Refresh
@@ -599,12 +599,12 @@ Please enter your wallet password
As chaves serão importadas em seu nó hushd conectado
-
+
Error
-
+
Error exporting transactions, file was not saved
@@ -637,137 +637,147 @@ Please enter your wallet password
Você precisar salvá-lo manualmente.
-
+
These are all the private keys for all the addresses in your wallet
YOUR_TRANSLATION_HERE
-
+
Private key for
Chave privada para
-
-
+
+
Save File
Salvar Arquivo
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
Não foi possível abrir o arquivo
-
+
Error getting private keys
-
+
Error loading private keys:
-
-
+
+
Copy address
Copiar endereço
-
-
-
+
+
+
Copied to clipboard
Copiado
-
+
Get private key
Obter chave privada
@@ -776,8 +786,8 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Blindar saldo para Sapling
-
-
+
+
View on block explorer
Ver no explorador de blocos
@@ -786,137 +796,137 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Migrar para Sapling
-
-
+
+
Copy txid
Copiar txid
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
View Payment Request
-
+
View Memo
Ver Recado
-
+
Reply to
-
+
Created new t-Addr
Criar novo t-Addr
-
+
Copy Address
-
+
Address has been previously used
-
+
Address is unused
-
+
Cannot support multiple addresses
-
+
Recurring payments doesn't currently support multiple addresses
-
+
Recipient
Destinatário
-
+
Only z-addresses can have memos
Apenas z-Addresses podem conter recados
-
+
Memos can only be used with z-addresses
Recados só podem ser anexados com z-Addresses
-
+
The memo field can only be used with a z-address.
O campo de recado só pode ser usado junto com z-Addresses.
-
+
doesn't look like a z-address
não se parece com um z-Address
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -930,7 +940,7 @@ Note: Funds need 5 confirmations before they can be spent
Troco de
-
+
Transaction Error
Erro na Transação
@@ -939,17 +949,17 @@ Note: Funds need 5 confirmations before they can be spent
Endereço de partida inválido
-
+
Recipient Address
Endereço destinatário
-
+
is Invalid
é Inválido
-
+
Amount for address '%1' is invalid!
@@ -1213,33 +1223,33 @@ Não iniciando hushd acoplado porque nenhum foi passado como parâmetroConectado ao hushd
-
+
There was an error connecting to hushd. The error was
Ocorreu um erro conectando ao hushd. O erro foi
-
-
+
+
The transaction with id
A transação com id
-
-
+
+
failed. The error was
falhou. O erro foi
-
-
-
+
+
+
failed
falhou
-
-
-
+
+
+
Tx
Tx
@@ -1248,29 +1258,29 @@ Não iniciando hushd acoplado porque nenhum foi passado como parâmetro gerando transação. Isso pode levar alguns minutos.
-
+
Update Available
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
-
+
No updates available
-
+
You already have the latest release v%1
-
+
Please wait for SilentDragonLite to exit
@@ -1279,7 +1289,7 @@ Would you like to visit the releases page?
Por favor, espera silentdragon finalizar
-
+
Waiting for hushd to exit
Esperando hushd finalizar
@@ -1332,14 +1342,14 @@ Por favor, coloque o host/porta e usuário/senha no menu Editar>Preferências
-
+
Connection Error
Erro na Conexão
-
-
+
+
Transaction Error
Erro na transação
@@ -1349,8 +1359,8 @@ Por favor, coloque o host/porta e usuário/senha no menu Editar>Preferências
Ocorreu um erro enviando a transação. O erro foi:
+
-
No Connection
Sem Conexão
@@ -1429,7 +1439,7 @@ Por favor, coloque o host/porta e usuário/senha no menu Editar>Preferências
Deletar etiqueta
-
+
Tx submitted (right click to copy) txid:
Tx enviada (botão-direito para copiar) txid:
@@ -1493,33 +1503,33 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
-
+
No hush price was available to convert from USD
-
+
View on block explorer
Ver no explorador de blocos
-
+
View Error
-
+
Reported Error
-
-
+
+
Are you sure you want to delete the recurring payment?
-
+
All future payments will be cancelled.
@@ -1545,37 +1555,37 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
RecurringListViewModel
-
+
Amount
Quantidade
-
+
Schedule
-
+
Payments Left
-
+
Next Payment
-
+
To
Para
-
+
Every
-
+
None
@@ -1591,48 +1601,48 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
RecurringPaymentsListViewModel
-
+
Date
-
+
Status
-
+
Txid
-
+
Not due yet
-
+
Pending
-
+
Skipped
-
+
Paid
-
+
Error
-
-
+
+
Unknown
@@ -1778,17 +1788,17 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
-
+
Pay
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
-
+
Can only request from Sapling addresses
@@ -1898,7 +1908,7 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
Opções
-
+
Check github for updates at startup
@@ -1907,27 +1917,22 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
Transações blindadas são salvas localmente e exibidas na aba de transações. Se desmarcado, transações blindadas não aparecerão na aba de transações.
-
+
Connect to github on startup to check for updates
-
+
Connect to the internet to fetch hush prices
-
- Fetch hush / USD prices
-
-
-
-
+
Theme
-
+
default
@@ -1942,32 +1947,87 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
-
+
Rescan
@@ -2183,11 +2243,6 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
Enable Fast Sync
-
-
- Allow connections to the internet to check for updates, get hush/USD prices etc...
-
-
Use custom datadir
@@ -2213,6 +2268,11 @@ Você possui fundos não confirmados ou o saldo é muito baixo para uma migraç
Choose directory
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
+
+
Connect over Tor
diff --git a/res/zec_qt_wallet_tr.qm b/res/zec_qt_wallet_tr.qm
index 1536a64..e76eeaf 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 adc3f02..8af0c61 100644
--- a/res/zec_qt_wallet_tr.ts
+++ b/res/zec_qt_wallet_tr.ts
@@ -47,29 +47,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -124,12 +124,12 @@ Please enter your wallet password
Korumalı
-
+
Transparent
Transparan
-
+
Total
Toplam
@@ -138,13 +138,13 @@ Please enter your wallet password
Bazı işlemler henüz onaylanmadı
-
+
Address Balances
Adres Bakiyeleri
-
-
+
+
Send
Gönder
@@ -157,99 +157,99 @@ Please enter your wallet password
Adres Bakiyesi
-
+
Send To
Alıcıya Gönder
-
+
Recipient
Alıcı
-
-
-
-
+
+
+
+
Address
Adres
-
-
+
+
Address Book
Adres Defteri
-
-
-
-
+
+
+
+
Amount
Miktar
-
+
Max Available
Maks. Kullanılabilir
-
-
-
-
+
+
+
+
Memo
Memo
-
+
Add Recipient
Alıcı Ekle
-
-
+
+
Miner Fee
Madenci Ücreti
-
+
0
0
-
+
Cancel
İptal
-
+
Receive
Al
-
+
Address Type
Adres Tipi
-
+
Hush Daemon
-
+
This is a Lightwallet, you cant mine with it!
-
+
&Hush Discord
-
+
&Hush Website
@@ -258,7 +258,7 @@ Please enter your wallet password
z-Adres(Sapling)
-
+
t-Addr
t-Adres
@@ -272,113 +272,113 @@ Please enter your wallet password
silentdragon
-
+
Your node is still syncing, balances may not be updated
Düğümünüz hala senkronize oluyor, bakiyeler güncellenmeyebilir
-
+
Recurring payment
Düzenli ödeme
-
+
Notarized
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Every month, starting 12-May-2012, for 6 payments
Her ay, 12-May-2012'den itibaren, 6 ödeme için
-
+
Edit Schedule
Programı Düzenle
-
+
z-Addr
z-Adres
-
+
New Address
Yeni Adres
-
+
View All Addresses
Tüm Adresleri Görüntüle
-
+
Label
Etiket
-
+
Update Label
Etiketi Güncelle
-
+
Address balance
Adres bakiyesi
-
+
Optional
İsteğe bağlı
-
-
+
+
Export Private Key
Özel Anahtarı Dışarı Aktar
-
+
Transactions
İşlemler
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
@@ -391,9 +391,9 @@ Please enter your wallet password
Şu anda madencilik yapmıyorsunuz
-
-
-
+
+
+
Loading...
Yükleniyor...
@@ -406,54 +406,54 @@ Please enter your wallet password
Ağ çözüm oranı
-
+
Vendor
Bağlantılar
-
+
|
|
-
+
&File
Dosya
-
+
&Help
Yardım
-
+
&Apps
Uygulamalar
-
+
&Edit
Düzenle
-
+
E&xit
Çıkış
-
+
&About
Hakkında
-
+
&Settings
Ayarlar
-
+
Ctrl+P
Ctrl+P
@@ -462,7 +462,7 @@ Please enter your wallet password
Bağış Yap
-
+
Check github.com for &updates
Güncellemeler için github.com adresini kontrol edin
@@ -479,48 +479,48 @@ Please enter your wallet password
Özel anahtarı içeri aktar
-
+
&Export all private keys
Tüm özel anahtarları dışarı aktar
-
+
&Export seed phrase
-
-
+
+
Export transactions
İşlemleri dışa aktar
-
+
Pay hush &URI...
hush URI öde...
-
+
Connect mobile &app
Mobil uygulamayı bağla
-
+
Ctrl+M
Ctrl+M
-
+
&Recurring Payments
Düzenli Ödemeler
-
+
Request hush...
hush iste...
-
+
File a bug...
Hata bildir...
@@ -537,12 +537,12 @@ Please enter your wallet password
Ctrl+A, Ctrl+Z
-
+
Address &book
Adres defteri
-
+
Ctrl+B
Ctrl+B
@@ -592,12 +592,12 @@ Please enter your wallet password
hushd henüz hazır değil. Lütfen arayüzün yüklenmesini bekleyin
-
+
View tx on block explorer
İşlemi blok gezgininde görüntüle
-
+
Refresh
Yenile
@@ -606,7 +606,7 @@ Please enter your wallet password
Tor konfigürasyonu yalnızca gömülü bir hushd çalışırken kullanılabilir.
-
+
You're using an external hushd. Please restart hushd with -rescan
Harici bir hushd kullanıyorsun. Lütfen hushd'yi -rescan ile yeniden başlat
@@ -663,7 +663,7 @@ Please enter your wallet password
hush URI ödeme hatası
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
URI bu şekilde olmalıdır: 'hush:<addr>?amt=x&memo=y
@@ -677,12 +677,12 @@ Please enter your wallet password
YOUR_TRANSLATION_HERE
-
+
Error
Hata
-
+
Error exporting transactions, file was not saved
İşlemler dışa aktarılırken hata oluştu, dosya kaydedilmedi
@@ -719,143 +719,153 @@ Please enter your wallet password
Bu birkaç dakika sürebilir. Yükleniyor...
-
+
These are all the private keys for all the addresses in your wallet
Bunlar, cüzdanınızdaki tüm adreslerin özel anahtarlarıdır
-
+
Private key for
için özel anahtar
-
-
+
+
Save File
Dosyayı Kaydet
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
Dosya açılamıyor
-
+
Error getting private keys
-
+
Error loading private keys:
-
-
+
+
Copy address
Adresi kopyala
-
-
-
+
+
+
Copied to clipboard
Panoya kopyalandı
-
+
Get private key
Özel anahtarı al
-
-
+
+
View on block explorer
Blok gezgini üzerinde göster
@@ -864,137 +874,137 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
Sapling'e geç
-
+
Copy Address
Adresi kopyala
-
+
Address has been previously used
Adres daha önce kullanılmış
-
+
Address is unused
Adres kullanılmamış
-
-
+
+
Copy txid
txid'i kopyala
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
View Payment Request
Ödeme Talebini Görüntüle
-
+
View Memo
Memo'yu Görüntüle
-
+
Reply to
-
+
Created new t-Addr
Yeni t-Addr oluşturuldu
-
+
Cannot support multiple addresses
Birden fazla adres desteklenemiyor
-
+
Recurring payments doesn't currently support multiple addresses
Düzenli ödemeler şu anda birden fazla adresi desteklemiyor
-
+
Recipient
Alıcı
-
+
Only z-addresses can have memos
Sadece z-adres'leri memo'lara sahip olabilir
-
+
Memos can only be used with z-addresses
Memo'lar yalnızca z-adres'leriyle kullanılabilir
-
+
The memo field can only be used with a z-address.
Memo alanı yalnızca bir z-adres'i ile kullanılabilir.
-
+
doesn't look like a z-address
z-adres'i gibi görünmüyor
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -1016,7 +1026,7 @@ Note: Funds need 5 confirmations before they can be spent
Bu işlemden sonra bakiye:
-
+
Transaction Error
İşlem Hatası
@@ -1025,17 +1035,17 @@ Note: Funds need 5 confirmations before they can be spent
Gönderen Adresi Geçersiz
-
+
Recipient Address
Alıcı Adresi
-
+
is Invalid
geçersizdir
-
+
Amount for address '%1' is invalid!
'% 1' adresinin tutarı geçersiz!
@@ -1335,29 +1345,29 @@ daemon=1
hushd'nin eş bağlantısı yok
-
+
There was an error connecting to hushd. The error was
hushd ile bağlantı kurulurken bir hata oluştu. Hata
-
-
+
+
The transaction with id
id ile işlem
-
-
+
+
failed. The error was
başarısız oldu. Hata
-
+
Update Available
Güncelleme Mevcut
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
@@ -1366,17 +1376,17 @@ Would you like to visit the releases page?
Yayınlanan sürümler sayfasını ziyaret etmek ister misiniz?
-
+
No updates available
Güncelleme yok
-
+
You already have the latest release v%1
Zaten en son sürüme (v%1) sahipsiniz
-
+
Please wait for SilentDragonLite to exit
@@ -1385,7 +1395,7 @@ Yayınlanan sürümler sayfasını ziyaret etmek ister misiniz?
Lütfen çıkmak için silentdragon'i bekleyin
-
+
No hush price was available to convert from USD
USD'den dönüştürülebilecek hush fiyatı yok
@@ -1394,42 +1404,42 @@ Yayınlanan sürümler sayfasını ziyaret etmek ister misiniz?
Düzenli İşlem Hesaplama:
-
-
-
+
+
+
failed
başarısız oldu
-
-
-
+
+
+
Tx
işlem
-
+
View on block explorer
Blok gezgini üzerinde göster
-
+
View Error
Hatayı Göster
-
+
Reported Error
Rapor Edilen Hata
-
-
+
+
Are you sure you want to delete the recurring payment?
Düzenli ödemeyi silmek istediğinize emin misiniz?
-
+
All future payments will be cancelled.
Gelecekteki tüm ödemeler iptal edilecektir.
@@ -1442,7 +1452,7 @@ Yayınlanan sürümler sayfasını ziyaret etmek ister misiniz?
Lütfen çıkmak için silentdragon'i bekleyin
-
+
Waiting for hushd to exit
Çıkmak için hushd bekleniyor
@@ -1499,14 +1509,14 @@ Lütfen Düzenle->Ayarlar menüsünde sunucu/bağlantı noktası ve kullanıc
-
+
Connection Error
Bağlantı Hatası
-
-
+
+
Transaction Error
İşlem Hatası
@@ -1516,8 +1526,8 @@ Lütfen Düzenle->Ayarlar menüsünde sunucu/bağlantı noktası ve kullanıc
İşlem gönderilirken bir hata oluştu. Hata:
+
-
No Connection
Bağlantı Yok
@@ -1596,7 +1606,7 @@ Lütfen Düzenle->Ayarlar menüsünde sunucu/bağlantı noktası ve kullanıc
Etiketi sil
-
+
Tx submitted (right click to copy) txid:
İşlem gönderildi (kopyalamak için sağ tıklayın) id:
@@ -1681,37 +1691,37 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.
RecurringListViewModel
-
+
Amount
Miktar
-
+
Schedule
Program
-
+
Payments Left
Kalan Ödemeler
-
+
Next Payment
Sonraki Ödeme
-
+
To
Alıcı
-
+
Every
Her
-
+
None
Yok
@@ -1727,48 +1737,48 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.
RecurringPaymentsListViewModel
-
+
Date
Tarih
-
+
Status
Durum
-
+
Txid
İşlem id
-
+
Not due yet
Henüz değil
-
+
Pending
Kuyrukta
-
+
Skipped
Atlandı
-
+
Paid
Ödenmiş
-
+
Error
Hata
-
-
+
+
Unknown
Bilinmeyen
@@ -1914,17 +1924,17 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.
-
+
Pay
Öde
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
Bir ödeme isteği ödüyorsunuz. Adresiniz bu ödemeyi isteyen kişiye görünmez.
-
+
Can only request from Sapling addresses
Sadece Sapling adreslerinden talep edebilir
@@ -2038,7 +2048,7 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.Tor ile bağlan
-
+
Check github for updates at startup
Başlangıçta güncellemeler için github'u kontrol et
@@ -2051,27 +2061,26 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.Tor ağına 127.0.0.1:9050'de çalışan SOCKS proxy üzerinden bağlanın. Lütfen Tor servisini harici olarak kurmanız ve çalıştırmanız gerektiğini lütfen unutmayın.
-
+
Connect to github on startup to check for updates
Güncellemeleri denetlemek için başlangıçta github'a bağlanır
-
+
Connect to the internet to fetch hush prices
hush fiyatlarını çekmek için internete bağlanır
-
Fetch hush / USD prices
- hush / USD fiyatlarını çek
+ hush / USD fiyatlarını çek
-
+
Theme
-
+
default
@@ -2086,27 +2095,82 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
Sorun giderme
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
@@ -2119,7 +2183,7 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.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'i yeniden başlatmanız gerekir
-
+
Rescan
Yeniden tara
@@ -2366,9 +2430,13 @@ Onaylanmamış fonunuz var veya otomatik geçiş için bakiye çok düşük.Gelişmiş Yapılandırmayı Göster
-
Allow connections to the internet to check for updates, get hush/USD prices etc...
- hush/USD fiyatlarını çekme, güncellemeleri denetleme vb. işlemler için internete bağlanmaya izin ver
+ hush/USD fiyatlarını çekme, güncellemeleri denetleme vb. işlemler için internete bağlanmaya izin ver
+
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
+
diff --git a/res/zec_qt_wallet_zh.qm b/res/zec_qt_wallet_zh.qm
index d447c0d..6b0bc1e 100644
Binary files a/res/zec_qt_wallet_zh.qm and b/res/zec_qt_wallet_zh.qm differ
diff --git a/res/zec_qt_wallet_zh.ts b/res/zec_qt_wallet_zh.ts
index 04bd901..13831b6 100644
--- a/res/zec_qt_wallet_zh.ts
+++ b/res/zec_qt_wallet_zh.ts
@@ -43,29 +43,29 @@
Controller
-
+
Wallet Password
-
+
Your wallet is encrypted.
Please enter your wallet password
-
-
+
+
Wallet Decryption Failed
-
+
Please enter a valid password
-
+
Failed to unlock wallet
@@ -121,37 +121,37 @@ Please enter your wallet password
隐蔽余额
-
+
Notarized
-
+
Transparent
非隐蔽余额
-
+
Total
所有余额
-
+
Your node is still syncing, balances may not be updated.
-
+
Some transactions are not yet confirmed. Balances may change.
-
+
Total notarized funds available:
-
+
Your node is still syncing, balances may not be updated
您的节点仍在同步,余额可能没有更新
@@ -160,13 +160,13 @@ Please enter your wallet password
部分交易尚未得到确认
-
+
Address Balances
地址余额
-
-
+
+
Send
发送
@@ -179,180 +179,180 @@ Please enter your wallet password
地址余额
-
+
Send To
发送给
-
+
Recipient
接收者
-
-
-
-
+
+
+
+
Address
地址
-
-
+
+
Address Book
地址薄
-
-
-
-
+
+
+
+
Amount
金额
-
+
Max Available
最大可发送金额
-
-
-
-
+
+
+
+
Memo
备注
-
+
Add Recipient
添加接收者
-
+
Recurring payment
循环支付
-
+
Every month, starting 12-May-2012, for 6 payments
从2012年5月12日开始,每月支付6次
-
+
Edit Schedule
编辑计划
-
-
+
+
Miner Fee
矿工费用
-
+
0
0
-
+
Cancel
取消
-
+
Receive
接收
-
+
Address Type
地址类型
-
+
z-Addr
隐蔽地址(z-Addr)
-
+
t-Addr
非隐蔽地址(t-Addr)
-
+
New Address
创建新地址
-
+
View All Addresses
-
+
Label
标签
-
+
Update Label
更新标签
-
+
Address balance
地址余额
-
+
Optional
可选
-
-
+
+
Export Private Key
导出私钥
-
+
Transactions
交易
-
+
Hush Daemon
-
+
blockHeight
-
+
Version hushlightd
-
+
&Send DenioD Feedback
-
+
&Export seed phrase
-
+
Encrypt Wallet
-
+
Remove Wallet Encryption
@@ -361,17 +361,17 @@ Please enter your wallet password
节点
-
+
This is a Lightwallet, you cant mine with it!
-
+
&Hush Discord
-
+
&Hush Website
@@ -380,9 +380,9 @@ Please enter your wallet password
您目前没有在挖矿
-
-
-
+
+
+
Loading...
加载中...
@@ -395,54 +395,54 @@ Please enter your wallet password
全网算力
-
+
Vendor
连接数
-
+
|
|
-
+
&File
&文件
-
+
&Help
&帮助
-
+
&Apps
&应用
-
+
&Edit
&编辑
-
+
E&xit
&退出
-
+
&About
&关于
-
+
&Settings
&设置
-
+
Ctrl+P
Ctrl+P
@@ -451,7 +451,7 @@ Please enter your wallet password
&捐赠
-
+
Check github.com for &updates
检查github.com获取和&更新
@@ -468,7 +468,7 @@ Please enter your wallet password
&导入私钥
-
+
&Export all private keys
&导出所有私钥
@@ -481,12 +481,12 @@ Please enter your wallet password
Ctrl+A, Ctrl+Z
-
+
Address &book
&地址簿
-
+
Ctrl+B
Ctrl+B
@@ -495,38 +495,38 @@ Please enter your wallet password
&备份 wallet.dat
-
-
+
+
Export transactions
导出交易
-
+
Pay hush &URI...
支付hush &URI ...
-
+
Connect mobile &app
连接移动&App
-
+
Ctrl+M
Ctrl+M
-
+
&Recurring Payments
&定期付款
-
+
Request hush...
请求 hush...
-
+
File a bug...
提交错误...
@@ -539,12 +539,12 @@ Please enter your wallet password
hushd尚未准备好。 请等待UI加载
-
+
View tx on block explorer
-
+
Refresh
@@ -553,7 +553,7 @@ Please enter your wallet password
Tor配置仅在运行嵌入的hushd时可用。
-
+
You're using an external hushd. Please restart hushd with -rescan
你正在使用外部hushd。 请使用-rescan参数重新启动hushd
@@ -622,7 +622,7 @@ Please enter your wallet password
支付hush URI时出错
-
+
URI should be of the form 'hush:<addr>?amt=x&memo=y
URI的格式应为 'hush:<addr>?amt=x&memo=y'
@@ -639,12 +639,12 @@ Please enter your wallet password
钥匙是导入的。 重新扫描区块链可能需要几分钟时间。 在此之前,功能可能会受到限制
-
+
Error
错误
-
+
Error exporting transactions, file was not saved
导出交易时出错,文件未保存
@@ -677,137 +677,147 @@ Please enter your wallet password
您需要手动备份它。
-
+
These are all the private keys for all the addresses in your wallet
这些都是钱包中所有地址的私钥
-
+
Private key for
私钥
-
-
+
+
Save File
保存文件
-
+
Wallet is already encrypted
-
+
Your wallet is already encrypted with a password.
Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption.
-
+
Passwords don't match
-
+
Error was:
-
+
Wallet Encrypted
-
+
Your wallet was successfully encrypted! The password will be needed to send funds or export private keys.
-
-
+
+
Wallet Encryption Failed
-
+
Wallet is not encrypted
-
+
Your wallet is not encrypted with a password.
-
+
Wallet Password
-
+
Please enter your wallet password
-
-
-
+
+
+
Wallet Decryption Failed
-
+
Please enter a password to decrypt your wallet!
-
+
Wallet Encryption Removed
-
+
Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys.
-
+
+ Currency Change
+
+
+
+
+ Please restart SilentDragonLite to have new currencies apply
+
+
+
+
This is your wallet seed. Please back it up carefully and safely.
-
-
+
+
Unable to open file
无法打开文件
-
+
Error getting private keys
-
+
Error loading private keys:
-
-
+
+
Copy address
复制成功
-
-
-
+
+
+
Copied to clipboard
复制到剪贴板
-
+
Get private key
获取私钥
@@ -816,8 +826,8 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
屏蔽余额到Sapling地址
-
-
+
+
View on block explorer
从区块浏览器中查看
@@ -826,137 +836,137 @@ Please use 'Remove Wallet Encryption' if you want to remove the wallet
迁移到Sapling地址
-
-
+
+
Copy txid
复制交易ID
-
+
Restart
-
+
Please restart Silentdragonlite to have the theme apply
-
+
Some feedback about SilentDragonlite or Hush...
-
+
Send Duke some private and shielded feedback about
-
+
or SilentDragonLite
-
+
Paste HUSH URI
-
+
Error paying HUSH URI
-
+
View Payment Request
查看付款申请
-
+
View Memo
查看备注
-
+
Reply to
回复给
-
+
Created new t-Addr
创建了新的t-Addr
-
+
Copy Address
-
+
Address has been previously used
该地址以前使用过
-
+
Address is unused
地址未使用
-
+
Cannot support multiple addresses
不能支持多个地址
-
+
Recurring payments doesn't currently support multiple addresses
定期付款目前不支持多个地址
-
+
Recipient
接收者
-
+
Only z-addresses can have memos
只有 z-addresses 才能有备注
-
+
Memos can only be used with z-addresses
备注只能与z-addresses一起使用
-
+
The memo field can only be used with a z-address.
备注字段只能与z-address一起使用。
-
+
doesn't look like a z-address
看起来不像是z-address
-
+
Please wait...
-
+
Computing your transaction
-
+
Done!
-
+
Not enough available funds to send this transaction
Have: %1
@@ -978,7 +988,7 @@ Note: Funds need 5 confirmations before they can be spent
这次交易后余额:
-
+
Transaction Error
交易错误
@@ -987,17 +997,17 @@ Note: Funds need 5 confirmations before they can be spent
发送地址无效
-
+
Recipient Address
接收地址
-
+
is Invalid
无效
-
+
Amount for address '%1' is invalid!
@@ -1385,14 +1395,14 @@ Please set the host/port and user/password in the Edit->Settings menu.
-
+
Connection Error
连接错误
-
-
+
+
Transaction Error
交易错误
@@ -1402,38 +1412,38 @@ Please set the host/port and user/password in the Edit->Settings menu.发送交易时出错。 错误是:
-
-
-
+
+
+
Tx
交易
-
-
-
+
+
+
failed
失败
-
-
+
+
The transaction with id
交易
-
-
+
+
failed. The error was
失败。 错误是
-
+
Please wait for SilentDragonLite to exit
-
+
No hush price was available to convert from USD
hush的美元价格无法获取
@@ -1442,34 +1452,34 @@ Please set the host/port and user/password in the Edit->Settings menu.计算重复交易:
-
+
View on block explorer
在区块浏览器查看
-
+
View Error
查看错误
-
+
Reported Error
报告错误
-
-
+
+
Are you sure you want to delete the recurring payment?
您确定要删除定期付款吗?
-
+
All future payments will be cancelled.
所有未来的付款都将被取消。
+
-
No Connection
没有连接
@@ -1502,7 +1512,7 @@ Please set the host/port and user/password in the Edit->Settings menu.hushd没有节点可连接
-
+
There was an error connecting to hushd. The error was
连接到hushd时出错。 错误是
@@ -1511,12 +1521,12 @@ Please set the host/port and user/password in the Edit->Settings menu. 交易计算中。 这可能需要几分钟。
-
+
Update Available
可用更新
-
+
A new release v%1 is available! You have v%2.
Would you like to visit the releases page?
@@ -1525,12 +1535,12 @@ Would you like to visit the releases page?
您想访问发布页面吗?
-
+
No updates available
没有可用的更新
-
+
You already have the latest release v%1
您已拥有最新版本 v%1
@@ -1539,12 +1549,12 @@ Would you like to visit the releases page?
请等待silentdragon退出
-
+
Waiting for hushd to exit
等待hushd退出
-
+
Tx submitted (right click to copy) txid:
交易提交(右键单击复制)交易ID:
@@ -1629,37 +1639,37 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
RecurringListViewModel
-
+
Amount
-
+
Schedule
-
+
Payments Left
-
+
Next Payment
-
+
To
-
+
Every
-
+
None
@@ -1675,48 +1685,48 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
RecurringPaymentsListViewModel
-
+
Date
日期
-
+
Status
状态
-
+
Txid
交易ID
-
+
Not due yet
尚未到期
-
+
Pending
等待中
-
+
Skipped
跳过
-
+
Paid
已支付
-
+
Error
错误
-
-
+
+
Unknown
未知状态
@@ -1862,17 +1872,17 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
支付给
-
+
Pay
支付
-
+
You are paying a payment request. Your address will not be visible to the person requesting this payment.
您正在支付一个付款申请。 请求此付款的人员无法看到您的地址。
-
+
Can only request from Sapling addresses
只能从Sapling地址请求
@@ -1986,7 +1996,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
通过Tor连接
-
+
Check github for updates at startup
启动时检查github更新
@@ -2023,27 +2033,26 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
通过运行在127.0.0.1:9050上的SOCKS代理连接到Tor网络。 请注意,您必须在外部安装和运行Tor服务。
-
+
Connect to github on startup to check for updates
在启动时连接到github以检查更新
-
+
Connect to the internet to fetch hush prices
连接到互联网以获取hush价格
-
Fetch hush / USD prices
- 获取 hush/USD 价格
+ 获取 hush/USD 价格
-
+
Theme
-
+
default
@@ -2058,27 +2067,82 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
-
+
blue
-
+
light
-
+
dark
-
+
+ Fetch hush prices
+
+
+
+
+ Currency
+
+
+
+
+ AUD
+
+
+
+
+ BTC
+
+
+
+
+ CAD
+
+
+
+
+ CHF
+
+
+
+
+ CNY
+
+
+
+
+ EUR
+
+
+
+
+ GBP
+
+
+
+
+ INR
+
+
+
+
+ USD
+
+
+
+
Troubleshooting
故障排除
-
+
Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
@@ -2091,7 +2155,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
重新扫描区块链以查找任何丢失的钱包交易并更正您的钱包余额。 这可能需要几个小时。 您需要重新启动silentdragon才能使其生效
-
+
Rescan
重新扫描
@@ -2299,9 +2363,13 @@ You either have unconfirmed funds or the balance is too low for an automatic mig
显示高级配置
-
Allow connections to the internet to check for updates, get hush/USD prices etc...
- 允许连接到互联网检查更新,获得hush/USD价格等…
+ 允许连接到互联网检查更新,获得hush/USD价格等…
+
+
+
+ Allow connections to the internet to check for updates, get hush prices etc...
+
diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro
index 0121d8e..877cd3d 100644
--- a/silentdragon-lite.pro
+++ b/silentdragon-lite.pro
@@ -124,7 +124,6 @@ TRANSLATIONS = res/zec_qt_wallet_es.ts \
res/zec_qt_wallet_zh.ts \
res/zec_qt_wallet_tr.ts
-
include(singleapplication/singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication
diff --git a/src/about.ui b/src/about.ui
index 2d28f7d..815abf0 100644
--- a/src/about.ui
+++ b/src/about.ui
@@ -17,7 +17,7 @@
-
- SilentDragon Lite
+ SilentDragonLite
-
@@ -41,7 +41,7 @@
0
0
463
- 534
+ 551
@@ -52,17 +52,18 @@
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Copyright (c) 2018-2019 DenioD (MIT License)</p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Special thanks to:</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Aditya Kulkarni for the awesome open source code</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">JSON for Modern C++ : <a href="https://nlohmann.github.io/json/"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://nlohmann.github.io/json/</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">QR Code generator library Nayuki : <a href="https://www.nayuki.io/page/qr-code-generator-library"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://www.nayuki.io/page/qr-code-ge…</span></a></p>
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Made with QT : <a href="https://www.qt.io/"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://www.qt.io/</span></a></p>
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">LICENSE:</p>
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
-<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</li>
-<li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the Software or the use or other dealings in the Software.</li></ul></body></html>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Copyright (c) 2019-2020 DenioD (MIT License)</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Copyright (c) 2018-2019 Aditya Kulkarni (MIT License)</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu';"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Special thanks to:</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Aditya Kulkarni for the awesome open source code</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">JSON for Modern C++ : </span><a href="https://nlohmann.github.io/json/"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://nlohmann.github.io/json/</span></a></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">QR Code generator library Nayuki : </span><a href="https://www.nayuki.io/page/qr-code-generator-library"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://www.nayuki.io/page/qr-code-ge…</span></a></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Made with QT : </span><a href="https://www.qt.io/"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">https://www.qt.io/</span></a></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">LICENSE:</span></p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu';">Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</span></p>
+<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" font-family:'Ubuntu';" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</li>
+<li style=" font-family:'Ubuntu';" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the Software or the use or other dealings in the Software.</li></ul></body></html>
true
diff --git a/src/camount.cpp b/src/camount.cpp
index 9c4b590..f811d1c 100644
--- a/src/camount.cpp
+++ b/src/camount.cpp
@@ -37,7 +37,68 @@ QString CAmount::toDecimalUSDString() const {
double dblAmount = static_cast(this->amount) / COIN;
double price = Settings::getInstance()->getZECPrice();
- return "$" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+ return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+
+QString CAmount::toDecimalEURString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getEURPrice();
+
+ return QLocale(QLocale::English).toString(dblAmount*price, 'f', 2) + " €";
+}
+QString CAmount::toDecimalBTCString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getBTCPrice();
+
+ return "BTC " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 9);
+}
+QString CAmount::toDecimalCNYString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getCNYPrice();
+
+ return "¥ /元 " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalRUBString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getRUBPrice();
+
+ return "₽ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalCADString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getCADPrice();
+
+ return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalSGDString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getSGDPrice();
+
+ return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalCHFString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getCHFPrice();
+
+ return "CHF " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalINRString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getINRPrice();
+
+ return "₹ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalGBPString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getGBPPrice();
+
+ return "£ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
+}
+QString CAmount::toDecimalAUDString() const {
+ double dblAmount = static_cast(this->amount) / COIN;
+ double price = Settings::getInstance()->getAUDPrice();
+
+ return " $" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalhushString() const {
@@ -52,6 +113,88 @@ QString CAmount::toDecimalhushUSDString() const {
return this->toDecimalhushString();
}
+
+QString CAmount::toDecimalhushEURString() const {
+ auto eurString = this->toDecimalEURString();
+ if (!eurString.isEmpty())
+ return this->toDecimalhushString() % " (" % eurString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushBTCString() const {
+ auto btcString = this->toDecimalBTCString();
+ if (!btcString.isEmpty())
+ return this->toDecimalhushString() % " (" % btcString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushCNYString() const {
+ auto cnyString = this->toDecimalCNYString();
+ if (!cnyString.isEmpty())
+ return this->toDecimalhushString() % " (" % cnyString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushRUBString() const {
+ auto rubString = this->toDecimalRUBString();
+ if (!rubString.isEmpty())
+ return this->toDecimalhushString() % " (" % rubString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushCADString() const {
+ auto cadString = this->toDecimalCADString();
+ if (!cadString.isEmpty())
+ return this->toDecimalhushString() % " (" % cadString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushSGDString() const {
+ auto sgdString = this->toDecimalSGDString();
+ if (!sgdString.isEmpty())
+ return this->toDecimalhushString() % " (" % sgdString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushCHFString() const {
+ auto chfString = this->toDecimalCHFString();
+ if (!chfString.isEmpty())
+ return this->toDecimalhushString() % " (" % chfString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushINRString() const {
+ auto inrString = this->toDecimalINRString();
+ if (!inrString.isEmpty())
+ return this->toDecimalhushString() % " (" % inrString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushGBPString() const {
+ auto gbpString = this->toDecimalGBPString();
+ if (!gbpString.isEmpty())
+ return this->toDecimalhushString() % " (" % gbpString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+QString CAmount::toDecimalhushAUDString() const {
+ auto audString = this->toDecimalAUDString();
+ if (!audString.isEmpty())
+ return this->toDecimalhushString() % " (" % audString % ")";
+ else
+ return this->toDecimalhushString();
+}
+
+
CAmount CAmount::fromDecimalString(QString decimalString) {
auto amtParts = decimalString.split(".");
qint64 r = amtParts[0].toULongLong() * COIN;
diff --git a/src/camount.h b/src/camount.h
index 08c4cb3..b5d88b9 100644
--- a/src/camount.h
+++ b/src/camount.h
@@ -27,8 +27,29 @@ public:
double toDecimalDouble() const;
QString toDecimalString() const;
QString toDecimalUSDString() const;
+ QString toDecimalEURString() const;
+ QString toDecimalBTCString() const;
+ QString toDecimalCNYString() const;
+ QString toDecimalRUBString() const;
+ QString toDecimalCADString() const;
+ QString toDecimalSGDString() const;
+ QString toDecimalCHFString() const;
+ QString toDecimalINRString() const;
+ QString toDecimalGBPString() const;
+ QString toDecimalAUDString() const;
QString toDecimalhushString() const;
QString toDecimalhushUSDString() const;
+ QString toDecimalhushEURString() const;
+ QString toDecimalhushBTCString() const;
+ QString toDecimalhushCNYString() const;
+ QString toDecimalhushRUBString() const;
+ QString toDecimalhushCADString() const;
+ QString toDecimalhushSGDString() const;
+ QString toDecimalhushCHFString() const;
+ QString toDecimalhushINRString() const;
+ QString toDecimalhushGBPString() const;
+ QString toDecimalhushAUDString() const;
+
qint64 toqint64() const { return amount; };
CAmount operator+ (const CAmount& other) const {
diff --git a/src/connection.cpp b/src/connection.cpp
index 7e90358..fae8cef 100644
--- a/src/connection.cpp
+++ b/src/connection.cpp
@@ -49,7 +49,7 @@ void ConnectionLoader::doAutoConnect() {
main->logger->write(QObject::tr("Attempting to initialize library with ") + config->server);
// Check to see if there's an existing wallet
- if (litelib_wallet_exists(Settings::getChainName().toStdString().c_str())) {
+ if (litelib_wallet_exists(Settings::getDefaultChainName().toStdString().c_str())) {
main->logger->write(QObject::tr("Using existing wallet."));
char* resp = litelib_initialize_existing(config->dangerous, config->server.toStdString().c_str());
QString response = litelib_process_response(resp);
@@ -68,9 +68,10 @@ void ConnectionLoader::doAutoConnect() {
auto me = this;
// After the lib is initialized, try to do get info
- connection->doRPC("info", "", [=](auto) {
+ connection->doRPC("info", "", [=](auto reply) {
// If success, set the connection
main->logger->write("Connection is online.");
+ connection->setInfo(reply);
isSyncing = new QAtomicInteger();
isSyncing->store(true);
@@ -138,7 +139,6 @@ Connection* ConnectionLoader::makeConnection(std::shared_ptr c
// Update the UI with the status
void ConnectionLoader::showInformation(QString info, QString detail) {
- qDebug() << "Showing info " << info << ":" << detail;
connD->status->setText(info);
connD->statusDetail->setText(detail);
diff --git a/src/connection.h b/src/connection.h
index 043a858..5ed3a09 100644
--- a/src/connection.h
+++ b/src/connection.h
@@ -123,8 +123,12 @@ public:
void showTxError(const QString& error);
+ json getInfo() { return serverInfo; }
+ void setInfo(const json& info) { serverInfo = info; }
+
private:
- bool shutdownInProgress = false;
+ bool shutdownInProgress = false;
+ json serverInfo;
};
#endif
diff --git a/src/connection.ui b/src/connection.ui
index 66b5143..c421f68 100644
--- a/src/connection.ui
+++ b/src/connection.ui
@@ -14,7 +14,7 @@
- silentdragon
+ SilentDragonLite
true
diff --git a/src/controller.cpp b/src/controller.cpp
index ffc6520..2b6cd4d 100644
--- a/src/controller.cpp
+++ b/src/controller.cpp
@@ -28,10 +28,11 @@ Controller::Controller(MainWindow* main) {
// Set up timer to refresh Price
priceTimer = new QTimer(main);
QObject::connect(priceTimer, &QTimer::timeout, [=]() {
- if (Settings::getInstance()->getAllowFetchPrices())
- refreshZECPrice();
+ if (Settings::getInstance()->getAllowFetchPrices())
+ refreshZECPrice();
+
});
- priceTimer->start(Settings::priceRefreshSpeed); // Every hour
+ priceTimer->start(Settings::priceRefreshSpeed); // Every 5 Min
// Set up a timer to refresh the UI every few seconds
timer = new QTimer(main);
@@ -58,7 +59,6 @@ Controller::~Controller() {
delete zrpc;
}
-
// Called when a connection to hushd is available.
void Controller::setConnection(Connection* c) {
if (c == nullptr) return;
@@ -80,7 +80,6 @@ void Controller::setConnection(Connection* c) {
refresh(true);
}
-
// Build the RPC JSON Parameters for this tx
void Controller::fillTxJsonParams(json& allRecepients, Tx tx) {
Q_ASSERT(allRecepients.is_array());
@@ -100,7 +99,6 @@ void Controller::fillTxJsonParams(json& allRecepients, Tx tx) {
}
}
-
void Controller::noConnection() {
QIcon i = QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical);
main->statusIcon->setPixmap(i.pixmap(16, 16));
@@ -137,49 +135,77 @@ void Controller::refresh(bool force) {
getInfoThenRefresh(force);
}
+void Controller::processInfo(const json& info) {
+ // Testnet?
+ QString chainName;
+ if (!info["chain_name"].is_null()) {
+ chainName = QString::fromStdString(info["chain_name"].get());
+ Settings::getInstance()->setTestnet(chainName == "test");
+ };
+
+
+ QString version = QString::fromStdString(info["version"].get());
+ Settings::getInstance()->sethushdVersion(version);
+
+ // Recurring pamynets are testnet only
+ if (!Settings::getInstance()->isTestnet())
+ main->disableRecurring();
+}
+
void Controller::getInfoThenRefresh(bool force) {
if (!zrpc->haveConnection())
return noConnection();
static bool prevCallSucceeded = false;
- zrpc->fetchInfo([=] (const json& reply) {
- prevCallSucceeded = true;
+ zrpc->fetchLatestBlock([=] (const json& reply) {
+ prevCallSucceeded = true;
- // Testnet?
- QString chainName;
- if (!reply["chain_name"].is_null()) {
- chainName = QString::fromStdString(reply["chain_name"].get());
- Settings::getInstance()->setTestnet(chainName == "test");
- };
-
- // Recurring pamynets are testnet only
- if (!Settings::getInstance()->isTestnet())
- main->disableRecurring();
-
- int curBlock = reply["latest_block_height"].get();
+ int curBlock = reply["height"].get();
bool doUpdate = force || (model->getLatestBlock() != curBlock);
model->setLatestBlock(curBlock);
ui->blockHeight->setText(QString::number(curBlock));
+ main->logger->write(QString("Refresh. curblock ") % QString::number(curBlock) % ", update=" % (doUpdate ? "true" : "false") );
+
// Connected, so display checkmark.
- auto tooltip = Settings::getInstance()->getSettings().server + "\n" + QString::fromStdString(reply.dump());
+ auto tooltip = Settings::getInstance()->getSettings().server + "\n" +
+ QString::fromStdString(zrpc->getConnection()->getInfo().dump());
QIcon i(":/icons/res/connected.gif");
+ QString chainName = Settings::getInstance()->isTestnet() ? "test" : "main";
main->statusLabel->setText(chainName + "(" + QString::number(curBlock) + ")");
- main->statusLabel->setText(" HUSH/USD=$" + QString::number( (double) Settings::getInstance()->getZECPrice() ));
+
+ // use currency ComboBox as input
+
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ main->statusLabel->setText(" HUSH/USD=$ " + QString::number( (double) Settings::getInstance()->getZECPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ main->statusLabel->setText(" HUSH/EUR=€ " + QString::number( (double) Settings::getInstance()->getEURPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ main->statusLabel->setText(" HUSH/BTC=BTC " + QString::number((double) Settings::getInstance()->getBTCPrice() ,'f',8));
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ main->statusLabel->setText(" HUSH/CNY=¥ /元 " + QString::number( (double) Settings::getInstance()->getCNYPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ main->statusLabel->setText(" HUSH/RUB=₽ " + QString::number((double) Settings::getInstance()->getRUBPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ main->statusLabel->setText(" HUSH/CAD=$ " + QString::number( (double) Settings::getInstance()->getCADPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ main->statusLabel->setText(" HUSH/SGD=$ " + QString::number((double) Settings::getInstance()->getSGDPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ main->statusLabel->setText(" HUSH/CHF=CHF " + QString::number((double) Settings::getInstance()->getCHFPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ main->statusLabel->setText(" HUSH/INR=₹ " + QString::number( (double) Settings::getInstance()->getINRPrice() ,'f',2));
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ main->statusLabel->setText(" HUSH/GBP=£ " + QString::number((double) Settings::getInstance()->getGBPPrice() ,'f',2));
+ }else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ main->statusLabel->setText(" HUSH/AUD=$ " + QString::number((double) Settings::getInstance()->getAUDPrice() ,'f',2));
+
+ } else {
+ main->statusLabel->setText(" error Input" + QString::number(Settings::getInstance()->getEURPrice() ));
+ }
main->statusLabel->setToolTip(tooltip);
main->statusIcon->setPixmap(i.pixmap(16, 16));
main->statusIcon->setToolTip(tooltip);
-
- //int version = reply["version"].get();
- int version = 1;
- Settings::getInstance()->sethushdVersion(version);
- ui->Version->setText(QString::fromStdString(reply["version"].get()));
- ui->Vendor->setText(QString::fromStdString(reply["vendor"].get()));
-
-
-
-
// See if recurring payments needs anything
Recurring::getInstance()->processPending(main);
@@ -297,14 +323,98 @@ void Controller::updateUIBalances() {
ui->balTransparent->setText(balT.toDecimalhushString());
ui->balTotal ->setText(balTotal.toDecimalhushString());
+ if (Settings::getInstance()->get_currency_name() == "USD") {
ui->balSheilded ->setToolTip(balZ.toDecimalUSDString());
ui->balVerified ->setToolTip(balVerified.toDecimalUSDString());
ui->balTransparent->setToolTip(balT.toDecimalUSDString());
ui->balTotal ->setToolTip(balTotal.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalEURString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalEURString());
+ ui->balTransparent->setToolTip(balT.toDecimalEURString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalEURString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalBTCString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalBTCString());
+ ui->balTransparent->setToolTip(balT.toDecimalBTCString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalBTCString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalCNYString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalCNYString());
+ ui->balTransparent->setToolTip(balT.toDecimalCNYString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalCNYString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalRUBString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalRUBString());
+ ui->balTransparent->setToolTip(balT.toDecimalRUBString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalRUBString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalCADString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalCADString());
+ ui->balTransparent->setToolTip(balT.toDecimalCADString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalCADString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalSGDString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalSGDString());
+ ui->balTransparent->setToolTip(balT.toDecimalSGDString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalSGDString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalCHFString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalCHFString());
+ ui->balTransparent->setToolTip(balT.toDecimalCHFString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalCHFString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalINRString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalINRString());
+ ui->balTransparent->setToolTip(balT.toDecimalINRString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalINRString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalGBPString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalGBPString());
+ ui->balTransparent->setToolTip(balT.toDecimalGBPString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalGBPString());
+
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ ui->balSheilded ->setToolTip(balZ.toDecimalAUDString());
+ ui->balVerified ->setToolTip(balVerified.toDecimalAUDString());
+ ui->balTransparent->setToolTip(balT.toDecimalAUDString());
+ ui->balTotal ->setToolTip(balTotal.toDecimalAUDString());
+ }
// Send tab
ui->txtAvailablehush->setText(balAvailable.toDecimalhushString());
- ui->txtAvailableUSD->setText(balAvailable.toDecimalUSDString());
+
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ ui->txtAvailableUSD->setText(balAvailable.toDecimalAUDString());
+ }
}
void Controller::refreshBalances() {
@@ -621,7 +731,7 @@ void Controller::refreshZECPrice() {
return noConnection();
// TODO: use/render all this data
- QUrl cmcURL("https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true");
+ QUrl cmcURL("https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur%2Ceth%2Cgbp%2Ccny%2Cjpy%2Crub%2Ccad%2Csgd%2Cchf%2Cinr%2Caud%2Cinr&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true");
QNetworkRequest req;
req.setUrl(cmcURL);
@@ -642,6 +752,17 @@ void Controller::refreshZECPrice() {
qDebug() << reply->errorString();
}
Settings::getInstance()->setZECPrice(0);
+ Settings::getInstance()->setEURPrice(0);
+ Settings::getInstance()->setBTCPrice(0);
+ Settings::getInstance()->setCNYPrice(0);
+ Settings::getInstance()->setRUBPrice(0);
+ Settings::getInstance()->setCADPrice(0);
+ Settings::getInstance()->setSGDPrice(0);
+ Settings::getInstance()->setCHFPrice(0);
+ Settings::getInstance()->setGBPPrice(0);
+ Settings::getInstance()->setAUDPrice(0);
+ Settings::getInstance()->setINRPrice(0);
+
return;
}
@@ -651,6 +772,16 @@ void Controller::refreshZECPrice() {
auto parsed = json::parse(all, nullptr, false);
if (parsed.is_discarded()) {
Settings::getInstance()->setZECPrice(0);
+ Settings::getInstance()->setEURPrice(0);
+ Settings::getInstance()->setBTCPrice(0);
+ Settings::getInstance()->setCNYPrice(0);
+ Settings::getInstance()->setRUBPrice(0);
+ Settings::getInstance()->setCADPrice(0);
+ Settings::getInstance()->setSGDPrice(0);
+ Settings::getInstance()->setCHFPrice(0);
+ Settings::getInstance()->setGBPPrice(0);
+ Settings::getInstance()->setAUDPrice(0);
+ Settings::getInstance()->setINRPrice(0);
return;
}
@@ -659,21 +790,91 @@ void Controller::refreshZECPrice() {
const json& item = parsed.get();
const json& hush = item["hush"].get();
- if (hush["usd"] >= 0) {
+ if (hush["usd"] >= 0) {
qDebug() << "Found hush key in price json";
- // TODO: support BTC/EUR prices as well
- //QString price = QString::fromStdString(hush["usd"].get());
+
qDebug() << "HUSH = $" << QString::number((double)hush["usd"]);
Settings::getInstance()->setZECPrice( hush["usd"] );
- return;
}
+ if (hush["eur"] >= 0)
+ {
+
+ qDebug() << "HUSH = €" << QString::number((double)hush["eur"]);
+ Settings::getInstance()->setEURPrice(hush["eur"]);
+ }
+ if (hush["btc"] >= 0)
+ {
+
+ qDebug() << "HUSH = BTC" << QString::number((double)hush["btc"]);
+ Settings::getInstance()->setBTCPrice( hush["btc"]);
+ }
+ if (hush["cny"] >= 0)
+
+ {
+ qDebug() << "HUSH = CNY" << QString::number((double)hush["cny"]);
+ Settings::getInstance()->setCNYPrice( hush["cny"]);
+ }
+ if (hush["rub"] >= 0)
+ {
+ qDebug() << "HUSH = RUB" << QString::number((double)hush["rub"]);
+ Settings::getInstance()->setRUBPrice( hush["rub"]);
+ }
+ if (hush["cad"] >= 0)
+
+ {
+ qDebug() << "HUSH = CAD" << QString::number((double)hush["cad"]);
+ Settings::getInstance()->setCADPrice( hush["cad"]);
+ }
+ if (hush["sgd"] >= 0)
+ {
+
+ qDebug() << "HUSH = SGD" << QString::number((double)hush["sgd"]);
+ Settings::getInstance()->setSGDPrice( hush["sgd"]);
+ }
+ if (hush["chf"] >= 0)
+ {
+
+ qDebug() << "HUSH = CHF" << QString::number((double)hush["chf"]);
+ Settings::getInstance()->setCADPrice( hush["chf"]);
+ }
+ if (hush["inr"] >= 0)
+ {
+
+ qDebug() << "HUSH = INR" << QString::number((double)hush["inr"]);
+ Settings::getInstance()->setINRPrice( hush["inr"]);
+ }
+ if (hush["gbp"] >= 0)
+ {
+
+ qDebug() << "HUSH = GBP" << QString::number((double)hush["gbp"]);
+ Settings::getInstance()->setGBPPrice( hush["gbp"]);
+ }
+ if (hush["aud"] >= 0)
+ {
+
+ qDebug() << "HUSH = AUD" << QString::number((double)hush["aud"]);
+ Settings::getInstance()->setAUDPrice( hush["aud"]);
+ }
+
+
+ return;
} catch (const std::exception& e) {
// If anything at all goes wrong, just set the price to 0 and move on.
qDebug() << QString("Caught something nasty: ") << e.what();
}
// If nothing, then set the price to 0;
- Settings::getInstance()->setZECPrice(0);
+ Settings::getInstance()->setZECPrice(0);
+ Settings::getInstance()->setEURPrice(0);
+ Settings::getInstance()->setBTCPrice(0);
+ Settings::getInstance()->setCNYPrice(0);
+ Settings::getInstance()->setRUBPrice(0);
+ Settings::getInstance()->setCADPrice(0);
+ Settings::getInstance()->setSGDPrice(0);
+ Settings::getInstance()->setCHFPrice(0);
+ Settings::getInstance()->setGBPPrice(0);
+ Settings::getInstance()->setAUDPrice(0);
+ Settings::getInstance()->setINRPrice(0);
});
}
diff --git a/src/controller.h b/src/controller.h
index 8dd9ff9..7866c90 100644
--- a/src/controller.h
+++ b/src/controller.h
@@ -37,6 +37,17 @@ public:
void checkForUpdate(bool silent = true);
void refreshZECPrice();
+ void refreshEURPrice();
+ void refreshBTCPrice();
+ void refreshCNYPrice();
+ void refreshRUBPrice();
+ void refreshCADPrice();
+ void refreshSGDPrice();
+ void refreshCHFPrice();
+ void refreshINRPrice();
+ void refreshGBPPrice();
+ void refreshAUDPrice();
+
void executeStandardUITransaction(Tx tx);
@@ -61,6 +72,8 @@ public:
void saveWallet(const std::function& cb) { zrpc->saveWallet(cb); }
+ void clearWallet(const std::function& cb) { zrpc->clearWallet(cb); }
+
void createNewZaddr(bool sapling, const std::function& cb) {
unlockIfEncrypted([=] () {
zrpc->createNewZaddr(sapling, cb);
@@ -106,6 +119,7 @@ public:
QString getDefaultTAddress();
private:
+ void processInfo(const json&);
void refreshBalances();
void refreshTransactions();
diff --git a/src/createhushconfdialog.ui b/src/createhushconfdialog.ui
index 3dec211..8719d53 100644
--- a/src/createhushconfdialog.ui
+++ b/src/createhushconfdialog.ui
@@ -109,7 +109,7 @@
-
- Allow connections to the internet to check for updates, get hush/USD prices etc...
+ Allow connections to the internet to check for updates, get hush prices etc...
diff --git a/src/liteinterface.cpp b/src/liteinterface.cpp
index 82f2dd1..57eaeb1 100644
--- a/src/liteinterface.cpp
+++ b/src/liteinterface.cpp
@@ -84,6 +84,13 @@ void LiteInterface::saveWallet(const std::function& cb) {
conn->doRPCWithDefaultErrorHandling("save", "", cb);
}
+void LiteInterface::clearWallet(const std::function& cb) {
+ if (conn == nullptr)
+ return;
+
+ conn->doRPCWithDefaultErrorHandling("clear", "", cb);
+}
+
void LiteInterface::unlockWallet(QString password, const std::function& cb) {
if (conn == nullptr)
return;
@@ -130,6 +137,15 @@ void LiteInterface::fetchInfo(const std::function& cb,
conn->doRPC("info", "", cb, err);
}
+
+void LiteInterface::fetchLatestBlock(const std::function& cb,
+ const std::function& err) {
+ if (conn == nullptr)
+ return;
+
+ conn->doRPC("height", "", cb, err);
+}
+
/**
* Method to get all the private keys for both z and t addresses. It will make 2 batch calls,
* combine the result, and call the callback with a single list containing both the t-addr and z-addr
diff --git a/src/liteinterface.h b/src/liteinterface.h
index 33c3446..43c5e6c 100644
--- a/src/liteinterface.h
+++ b/src/liteinterface.h
@@ -44,6 +44,9 @@ public:
void fetchInfo(const std::function& cb,
const std::function& err);
+
+ void fetchLatestBlock(const std::function& cb,
+ const std::function& err);
void fetchBalance(const std::function& cb);
@@ -56,6 +59,7 @@ public:
void fetchSeed(const std::function&);
void saveWallet(const std::function& cb);
+ void clearWallet(const std::function& cb);
void fetchWalletEncryptionStatus(const std::function& cb);
void encryptWallet(QString password, const std::function& cb);
diff --git a/src/main.cpp b/src/main.cpp
index 8d85d26..3d915d1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -205,7 +205,7 @@ public:
w = new MainWindow();
- w->setWindowTitle("SilentDragon Lite v" + QString(APP_VERSION));
+ w->setWindowTitle("SilentDragonLite v" + QString(APP_VERSION));
// If there was a payment URI on the command line, pay it
if (parser.positionalArguments().length() > 0) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 862d7e1..de7cfeb 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -16,6 +16,7 @@
#include "connection.h"
#include "requestdialog.h"
#include "websockets.h"
+#include
using json = nlohmann::json;
@@ -36,6 +37,7 @@ MainWindow::MainWindow(QWidget *parent) :
this->slot_change_theme(theme_name);
+
ui->setupUi(this);
logger = new Logger(this, QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).filePath("silentdragonlite-wallet.log"));
@@ -107,6 +109,20 @@ MainWindow::MainWindow(QWidget *parent) :
AppDataServer::getInstance()->connectAppDialog(this);
});
+ // Rescan
+ QObject::connect(ui->actionRescan, &QAction::triggered, [=]() {
+ // To rescan, we clear the wallet state, and then reload the connection
+ // This will start a sync, and show the scanning status.
+ getRPC()->clearWallet([=] (auto) {
+ // Save the wallet
+ getRPC()->saveWallet([=] (auto) {
+ // Then reload the connection. The ConnectionLoader deletes itself.
+ auto cl = new ConnectionLoader(this, rpc);
+ cl->loadConnection();
+ });
+ });
+ });
+
// Address Book
QObject::connect(ui->action_Address_Book, &QAction::triggered, this, &MainWindow::addressBook);
@@ -393,6 +409,21 @@ void MainWindow::setupSettingsModal() {
Ui_Settings settings;
settings.setupUi(&settingsDialog);
Settings::saveRestore(&settingsDialog);
+
+ // Include currencies
+
+ QString currency_name;
+ try
+ {
+ currency_name = Settings::getInstance()->get_currency_name();
+ }
+ catch (...)
+ {
+ currency_name = "USD";
+ }
+
+ this->slot_change_currency(currency_name);
+
// Setup theme combo
int theme_index = settings.comboBoxTheme->findText(Settings::getInstance()->get_theme_name(), Qt::MatchExactly);
@@ -404,25 +435,35 @@ void MainWindow::setupSettingsModal() {
QMessageBox::information(this, tr("Restart"), tr("Please restart Silentdragonlite to have the theme apply"), QMessageBox::Ok);
});
+ // Get Currency Data
+
+ int currency_index = settings.comboBoxCurrency->findText(Settings::getInstance()->get_currency_name(), Qt::MatchExactly);
+ settings.comboBoxCurrency->setCurrentIndex(currency_index);
+
+ QObject::connect(settings.comboBoxCurrency, &QComboBox::currentTextChanged, [=] (QString currency_name) {
+ this->slot_change_currency(currency_name);
+
+ // Tell the user to restart
+ QMessageBox::information(this, tr("Currency Change"), tr("Please restart SilentDragonLite to have new currencies apply"), QMessageBox::Ok);
+ });
+
// Check for updates
settings.chkCheckUpdates->setChecked(Settings::getInstance()->getCheckForUpdates());
// Fetch prices
settings.chkFetchPrices->setChecked(Settings::getInstance()->getAllowFetchPrices());
+ // List of default servers
+ settings.cmbServer->addItem("https://hush-lightwallet.de:443");
+ settings.cmbServer->addItem("https://hush-lightwallet.de:443");
+
// Load current values into the dialog
auto conf = Settings::getInstance()->getSettings();
- settings.txtServer->setText(conf.server);
+ settings.cmbServer->setCurrentText(conf.server);
// Connection tab by default
settings.tabWidget->setCurrentIndex(0);
- // Enable the troubleshooting options only if using embedded hushd
- if (!rpc->isEmbedded()) {
- settings.chkRescan->setEnabled(false);
- settings.chkRescan->setToolTip(tr("You're using an external hushd. Please restart hushd with -rescan"));
- }
-
if (settingsDialog.exec() == QDialog::Accepted) {
// Check for updates
Settings::getInstance()->setCheckForUpdates(settings.chkCheckUpdates->isChecked());
@@ -431,14 +472,22 @@ void MainWindow::setupSettingsModal() {
Settings::getInstance()->setAllowFetchPrices(settings.chkFetchPrices->isChecked());
// Save the server
- Settings::getInstance()->saveSettings(settings.txtServer->text().trimmed());
+ bool reloadConnection = false;
+ if (conf.server != settings.cmbServer->currentText().trimmed()) {
+ reloadConnection = true;
+ }
+ Settings::getInstance()->saveSettings(settings.cmbServer->currentText().trimmed());
- if (false /* connection needs reloading?*/) {
+ if (reloadConnection) {
// Save settings
- Settings::getInstance()->saveSettings(settings.txtServer->text());
-
- auto cl = new ConnectionLoader(this, rpc);
- cl->loadConnection();
+ Settings::getInstance()->saveSettings(settings.cmbServer->currentText());
+
+ // Save the wallet
+ getRPC()->saveWallet([=] (auto) {
+ // Then reload the connection. The ConnectionLoader deletes itself.
+ auto cl = new ConnectionLoader(this, rpc);
+ cl->loadConnection();
+ });
}
}
});
@@ -446,7 +495,7 @@ void MainWindow::setupSettingsModal() {
void MainWindow::addressBook() {
// Check to see if there is a target.
- QRegExp re("Address[0-9]+", Qt::CaseInsensitive);
+ QRegularExpression re("Address[0-9]+", QRegularExpression::CaseInsensitiveOption);
for (auto target: ui->sendToWidgets->findChildren(re)) {
if (target->hasFocus()) {
AddressBook::open(this, target);
@@ -1093,7 +1142,30 @@ void MainWindow::setupReceiveTab() {
}
ui->rcvLabel->setText(label);
- ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushUSDString());
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ ui->rcvBal->setText(rpc->getModel()->getAllBalances().value(addr).toDecimalhushAUDString());
+ }
+
ui->txtReceive->setPlainText(addr);
ui->qrcodeDisplay->setQrcodeString(addr);
if (rpc->getModel()->getUsedAddresses().value(addr, false)) {
@@ -1235,9 +1307,32 @@ void MainWindow::updateLabels() {
updateLabelsAutoComplete();
}
+void MainWindow::slot_change_currency(const QString& currency_name)
+
+{
+
+ Settings::getInstance()->set_currency_name(currency_name);
+
+ // Include currency
+
+ QString saved_currency_name;
+ try
+ {
+ saved_currency_name = Settings::getInstance()->get_currency_name();
+
+ }
+ catch (...)
+ {
+ saved_currency_name = "USD";
+
+ }
+}
+
void MainWindow::slot_change_theme(const QString& theme_name)
+
{
Settings::getInstance()->set_theme_name(theme_name);
+
// Include css
QString saved_theme_name;
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 0af7ad3..50f833a 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -78,7 +78,8 @@ public:
public slots:
void slot_change_theme(const QString& themeName);
-
+ void slot_change_currency(const QString& currencyName);
+
private:
void closeEvent(QCloseEvent* event);
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index a2dc2c6..aa06242 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -11,7 +11,7 @@
- silentdragon
+ SilentDragonLite
@@ -22,7 +22,7 @@
-
- 1
+ 0
@@ -79,9 +79,16 @@
-
+
+
+ 0
+ 0
+
+
- 10
+ 11
+ true
@@ -93,7 +100,7 @@
- 10
+ 11
@@ -392,8 +399,8 @@
0
0
- 1226
- 504
+ 1162
+ 344
@@ -1088,7 +1095,7 @@
0
0
1274
- 22
+ 39
@@ -1238,6 +1247,11 @@
Remove Wallet Encryption
+
+
+ Rescan
+
+
diff --git a/src/recurring.cpp b/src/recurring.cpp
index 5941e52..b8ffc12 100644
--- a/src/recurring.cpp
+++ b/src/recurring.cpp
@@ -83,7 +83,29 @@ QJsonObject RecurringPaymentInfo::toJson() {
QString RecurringPaymentInfo::getAmountPretty() const {
CAmount amount = CAmount::fromDouble(amt);
+ if (Settings::getInstance()->get_currency_name() == "USD") {
return currency == "USD" ? amount.toDecimalUSDString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ return currency == "EUR" ? amount.toDecimalEURString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ return currency == "BTC" ? amount.toDecimalBTCString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ return currency == "CNY" ? amount.toDecimalCNYString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ return currency == "RUB" ? amount.toDecimalRUBString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ return currency == "CAD" ? amount.toDecimalCADString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ return currency == "SGD" ? amount.toDecimalSGDString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ return currency == "CHF" ? amount.toDecimalCHFString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ return currency == "INR" ? amount.toDecimalINRString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ return currency == "GBP" ? amount.toDecimalGBPString() : amount.toDecimalhushString();
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ return currency == "AUD" ? amount.toDecimalAUDString() : amount.toDecimalhushString();
+}
}
QString RecurringPaymentInfo::getScheduleDescription() const {
@@ -136,8 +158,31 @@ RecurringPaymentInfo* Recurring::getNewRecurringFromTx(QWidget* parent, MainWind
if (tx.toAddrs.length() > 0) {
ui.lblTo->setText(tx.toAddrs[0].addr);
- // Default is USD
+ // Change it with currency in Settings
+ if (Settings::getInstance()->get_currency_name() == "USD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalAUDString());
+
+ }
ui.txtMemo->setPlainText(tx.toAddrs[0].memo);
ui.txtMemo->setEnabled(false);
@@ -147,10 +192,36 @@ RecurringPaymentInfo* Recurring::getNewRecurringFromTx(QWidget* parent, MainWind
QObject::connect(ui.cmbCurrency, &QComboBox::currentTextChanged, [&](QString c) {
if (tx.toAddrs.length() < 1)
return;
-
if (c == "USD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalUSDString());
+
+ } else if (c == "EUR") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalEURString());
+ } else if
+ (c == "BTC") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalBTCString());
+ } else if (c == "CNY") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCNYString());
+ } else if
+ (c == "RUB") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalRUBString());
+ } else if (c == "CAD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCADString());
+ } else if
+ (c == "SGD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalSGDString());
+ } else if (c == "CHF") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCHFString());
+ } else if
+ (c == "INR") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalINRString());
+ } else if (c == "GBP") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalGBPString());
+ } else if
+ (c == "AUD") {
+ ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalAUDString());
}
+
else {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalString());
}
@@ -472,6 +543,8 @@ void Recurring::executeRecurringPayment(MainWindow* main, RecurringPaymentInfo r
PaymentStatus::ERROR);
}
return;
+
+
}
// Translate it into hush
diff --git a/src/requestdialog.cpp b/src/requestdialog.cpp
index d63de4d..203ab2b 100644
--- a/src/requestdialog.cpp
+++ b/src/requestdialog.cpp
@@ -74,7 +74,13 @@ void RequestDialog::showPaymentConfirmation(MainWindow* main, QString paymentURI
req.txtMemo->setPlainText(payInfo.memo);
req.txtAmount->setText(payInfo.amt);
CAmount amount = CAmount::fromDecimalString(req.txtAmount->text());
+ if (Settings::getInstance()->get_currency_name() == "USD") {
req.txtAmountUSD->setText(amount.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ req.txtAmountUSD->setText(amount.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ req.txtAmountUSD->setText(amount.toDecimalBTCString());
+ }
req.buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Pay"));
@@ -114,11 +120,54 @@ void RequestDialog::showRequesthush(MainWindow* main) {
req.txtAmount->setValidator(main->getAmountValidator());
QObject::connect(req.txtAmount, &QLineEdit::textChanged, [=] (auto text) {
CAmount amount = CAmount::fromDecimalString(text);
- req.txtAmountUSD->setText(amount.toDecimalUSDString());
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ req.txtAmountUSD->setText(amount.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ req.txtAmountUSD->setText(amount.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ req.txtAmountUSD->setText(amount.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ req.txtAmountUSD->setText(amount.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ req.txtAmountUSD->setText(amount.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ req.txtAmountUSD->setText(amount.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ req.txtAmountUSD->setText(amount.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ req.txtAmountUSD->setText(amount.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ req.txtAmountUSD->setText(amount.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ req.txtAmountUSD->setText(amount.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ req.txtAmountUSD->setText(amount.toDecimalBTCString());
+ }
});
CAmount amount = CAmount::fromDecimalString(req.txtAmount->text());
- req.txtAmountUSD->setText(amount.toDecimalUSDString());
-
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ req.txtAmountUSD->setText(amount.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ req.txtAmountUSD->setText(amount.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ req.txtAmountUSD->setText(amount.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ req.txtAmountUSD->setText(amount.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ req.txtAmountUSD->setText(amount.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ req.txtAmountUSD->setText(amount.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ req.txtAmountUSD->setText(amount.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ req.txtAmountUSD->setText(amount.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ req.txtAmountUSD->setText(amount.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ req.txtAmountUSD->setText(amount.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ req.txtAmountUSD->setText(amount.toDecimalBTCString());
+ }
req.txtMemo->setAcceptButton(req.buttonBox->button(QDialogButtonBox::Ok));
req.txtMemo->setLenDisplayLabel(req.lblMemoLen);
req.txtMemo->setMaxLen(400);
diff --git a/src/scripts/dounifiedbuild.ps1 b/src/scripts/dounifiedbuild.ps1
index d9b1a16..6d78db3 100644
--- a/src/scripts/dounifiedbuild.ps1
+++ b/src/scripts/dounifiedbuild.ps1
@@ -2,16 +2,17 @@
param (
[Parameter(Mandatory=$true)][string]$version,
[Parameter(Mandatory=$true)][string]$prev,
+ [Parameter(Mandatory=$true)][string]$certificate,
[Parameter(Mandatory=$true)][string]$server,
[Parameter(Mandatory=$true)][string]$winserver
)
Write-Host "[Initializing]"
-Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-binaries-silentdragon-v$version.tar.gz
-Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-deb-silentdragon-v$version.deb
-Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-binaries-silentdragon-v$version.zip
-Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-installer-silentdragon-v$version.msi
-Remove-Item -Force -ErrorAction Ignore ./artifacts/macOS-silentdragon-v$version.dmg
+Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-binaries-SilentDragonLite-v$version.tar.gz
+Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-deb-SilentDragonLite-v$version.deb
+Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-binaries-SilentDragonLite-v$version.zip
+Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-installer-SilentDragonLite-v$version.msi
+Remove-Item -Force -ErrorAction Ignore ./artifacts/macOS-SilentDragonLite-v$version.dmg
Remove-Item -Force -ErrorAction Ignore ./artifacts/signatures-v$version.tar.gz
@@ -27,7 +28,7 @@ Write-Host ""
Write-Host "[Building on Mac]"
-bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version --hush_path ~/prod/hush
+bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version --certificate "$certificate"
if (! $?) {
Write-Output "[Error]"
exit 1;
@@ -37,9 +38,11 @@ Write-Host ""
Write-Host "[Building Linux + Windows]"
Write-Host -NoNewline "Copying files.........."
+# Cleanup some local files to aid copying
+rm -rf lib/target/
ssh $server "rm -rf /tmp/zqwbuild"
ssh $server "mkdir /tmp/zqwbuild"
-scp -r src/ singleapplication/ res/ ./silentdragonlite.pro ./application.qrc ./LICENSE ./README.md ${server}:/tmp/zqwbuild/ | Out-Null
+scp -r src/ singleapplication/ res/ ./silentdragon-lite.pro ./application.qrc ./LICENSE ./README.md ${server}:/tmp/zqwbuild/ | Out-Null
ssh $server "dos2unix -q /tmp/zqwbuild/src/scripts/mkrelease.sh" | Out-Null
ssh $server "dos2unix -q /tmp/zqwbuild/src/version.h"
Write-Host "[OK]"
@@ -86,11 +89,11 @@ Write-Host "[OK]"
# Finally, test to make sure all files exist
Write-Host -NoNewline "Checking Build........."
-if (! (Test-Path ./artifacts/linux-binaries-silentdragon-v$version.tar.gz) -or
- ! (Test-Path ./artifacts/linux-deb-silentdragon-v$version.deb) -or
- ! (Test-Path ./artifacts/Windows-binaries-silentdragon-v$version.zip) -or
- ! (Test-Path ./artifacts/macOS-silentdragon-v$version.dmg) -or
- ! (Test-Path ./artifacts/Windows-installer-silentdragon-v$version.msi) ) {
+if (! (Test-Path ./artifacts/linux-binaries-SilentDragonLite-v$version.tar.gz) -or
+ ! (Test-Path ./artifacts/linux-deb-SilentDragonLite-v$version.deb) -or
+ ! (Test-Path ./artifacts/Windows-binaries-SilentDragonLite-v$version.zip) -or
+ ! (Test-Path ./artifacts/macOS-SilentDragonLite-v$version.dmg) -or
+ ! (Test-Path ./artifacts/Windows-installer-SilentDragonLite-v$version.msi) ) {
Write-Host "[Error]"
exit 1;
}
diff --git a/src/scripts/mkmacdmg.sh b/src/scripts/mkmacdmg.sh
index a9d8799..a223eeb 100755
--- a/src/scripts/mkmacdmg.sh
+++ b/src/scripts/mkmacdmg.sh
@@ -12,8 +12,8 @@ case $key in
shift # past argument
shift # past value
;;
- -z|--hush_path)
- hush_DIR="$2"
+ -c|--certificate)
+ CERTIFICATE="$2"
shift # past argument
shift # past value
;;
@@ -35,6 +35,11 @@ if [ -z $QT_PATH ]; then
exit 1;
fi
+if [ -z $CERTIFICATE ]; then
+ echo "CERTIFICATE is not set. Please set it the name of the MacOS developer certificate to sign the binary with";
+ exit 1;
+fi
+
if [ -z $APP_VERSION ]; then
echo "APP_VERSION is not set. Please set it to the current release version of the app";
exit 1;
@@ -70,7 +75,8 @@ echo -n "Deploying.............."
mkdir artifacts >/dev/null 2>&1
rm -f artifcats/Silentdragonlite.dmg >/dev/null 2>&1
rm -f artifacts/rw* >/dev/null 2>&1
-$QT_PATH/bin/macdeployqt Silentdragonlite.app
+$QT_PATH/bin/macdeployqt SilentDragonLite.app
+codesign --deep --force --verify --verbose -s "$CERTIFICATE" --options runtime --timestamp SilentDragonLite.app/
echo "[OK]"
diff --git a/src/scripts/mkwininstaller.ps1 b/src/scripts/mkwininstaller.ps1
index 1ca536a..fa4ef45 100644
--- a/src/scripts/mkwininstaller.ps1
+++ b/src/scripts/mkwininstaller.ps1
@@ -2,16 +2,13 @@ param (
[Parameter(Mandatory=$true)][string]$version
)
-$target="silentdragon-v$version"
+$target="SilentDragonLite-v$version"
Remove-Item -Path release/wininstaller -Recurse -ErrorAction Ignore | Out-Null
New-Item release/wininstaller -itemtype directory | Out-Null
-Copy-Item release/$target/silentdragon.exe release/wininstaller/
-Copy-Item release/$target/LICENSE release/wininstaller/
-Copy-Item release/$target/README.md release/wininstaller/
-Copy-Item release/$target/hushd.exe release/wininstaller/
-Copy-Item release/$target/hush-cli.exe release/wininstaller/
+Copy-Item release/$target/SilentDragonLite.exe release/wininstaller/
+Copy-Item release/$target/LICENSE release/wininstaller/
Get-Content src/scripts/silentdragonlite.wxs | ForEach-Object { $_ -replace "RELEASE_VERSION", "$version" } | Out-File -Encoding utf8 release/wininstaller/silentdragonlite.wxs
@@ -20,10 +17,10 @@ if (!$?) {
exit 1;
}
-light.exe -ext WixUIExtension -cultures:en-us release/wininstaller/silentdragonlite.wixobj -out release/wininstaller/silentdragon.msi
+light.exe -ext WixUIExtension -cultures:en-us release/wininstaller/SilentDragonLite.wixobj -out release/wininstaller/SilentDragonLite.msi
if (!$?) {
exit 1;
}
New-Item artifacts -itemtype directory -Force | Out-Null
-Copy-Item release/wininstaller/silentdragon.msi ./artifacts/Windows-installer-$target.msi
\ No newline at end of file
+Copy-Item release/wininstaller/SilentDragonLite.msi ./artifacts/Windows-installer-$target.msi
diff --git a/src/scripts/signbinaries.sh b/src/scripts/signbinaries.sh
index 341b735..9314f15 100755
--- a/src/scripts/signbinaries.sh
+++ b/src/scripts/signbinaries.sh
@@ -35,7 +35,7 @@ rm -f signatures-v$APP_VERSION.tar.gz
# sha256sum the binaries
gsha256sum *$APP_VERSION* > sha256sum-v$APP_VERSION.txt
-for i in $( ls *silentdragon-v$APP_VERSION* sha256sum-v$APP_VERSION* ); do
+for i in $( ls *SilentDragonLite-v$APP_VERSION* sha256sum-v$APP_VERSION* ); do
echo "Signing" $i
gpg --batch --output ../release/signatures/$i.sig --detach-sig $i
done
diff --git a/src/scripts/zec-qt-wallet.wxs b/src/scripts/zec-qt-wallet.wxs
index 7879944..7f5dc4b 100644
--- a/src/scripts/zec-qt-wallet.wxs
+++ b/src/scripts/zec-qt-wallet.wxs
@@ -1,13 +1,13 @@
-
+
-
-
+
+
@@ -55,24 +55,21 @@
-
+
-
-
-
-
+
-
+
diff --git a/src/sendtab.cpp b/src/sendtab.cpp
index f9b3e9f..b014776 100644
--- a/src/sendtab.cpp
+++ b/src/sendtab.cpp
@@ -58,7 +58,30 @@ void MainWindow::setupSendTab() {
ui->minerFeeAmt->setReadOnly(true);
QObject::connect(ui->minerFeeAmt, &QLineEdit::textChanged, [=](auto txt) {
CAmount fee = CAmount::fromDecimalString(txt);
+
+ if (Settings::getInstance()->get_currency_name() == "USD") {
ui->lblMinerFeeUSD->setText(fee.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ ui->lblMinerFeeUSD->setText(fee.toDecimalAUDString());
+ }
});
ui->minerFeeAmt->setText(Settings::getMinerFee().toDecimalString());
@@ -66,9 +89,42 @@ void MainWindow::setupSendTab() {
QObject::connect(ui->tabWidget, &QTabWidget::currentChanged, [=] (int pos) {
if (pos == 1) {
QString txt = ui->minerFeeAmt->text();
+ if (Settings::getInstance()->get_currency_name() == "USD") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalUSDString();
ui->lblMinerFeeUSD->setText(feeUSD);
- }
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalEURString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalEURString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCNYString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalRUBString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCADString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalSGDString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCHFString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalINRString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalGBPString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ QString feeUSD = CAmount::fromDecimalString(txt).toDecimalAUDString();
+ ui->lblMinerFeeUSD->setText(feeUSD);
+ }
+ }
+
});
//Fees validator
@@ -158,7 +214,7 @@ void MainWindow::updateLabelsAutoComplete() {
labelCompleter->setCaseSensitivity(Qt::CaseInsensitive);
// Then, find all the address fields and update the completer.
- QRegExp re("Address[0-9]+", Qt::CaseInsensitive);
+ QRegularExpression re("Address[0-9]+", QRegularExpression::CaseInsensitiveOption);
for (auto target: ui->sendToWidgets->findChildren(re)) {
target->setCompleter(labelCompleter);
}
@@ -275,7 +331,30 @@ void MainWindow::addressChanged(int itemNumber, const QString& text) {
void MainWindow::amountChanged(int item, const QString& text) {
auto usd = ui->sendToWidgets->findChild(QString("AmtUSD") % QString::number(item));
CAmount amt = CAmount::fromDecimalString(text);
+
+ if (Settings::getInstance()->get_currency_name() == "USD") {
usd->setText(amt.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ usd->setText(amt.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ usd->setText(amt.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ usd->setText(amt.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ usd->setText(amt.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ usd->setText(amt.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ usd->setText(amt.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ usd->setText(amt.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ usd->setText(amt.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ usd->setText(amt.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ usd->setText(amt.toDecimalAUDString());
+ }
// If there is a recurring payment, update the info there as well
if (sendTxRecurringInfo != nullptr) {
@@ -535,12 +614,93 @@ bool MainWindow::confirmTx(Tx tx, RecurringPaymentInfo* rpi) {
totalSpending = totalSpending + toAddr.amount;
// Amount (USD)
+ if (Settings::getInstance()->get_currency_name() == "USD") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalUSDString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
- confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+ // Amount (EUR)
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalEURString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (BTC)
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalBTCString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (CNY)
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalCNYString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (RUB)
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalRUBString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (CAD)
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalCADString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (SGD)
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalSGDString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (CHF)
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalCHFString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (INR)
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalINRString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (GBP)
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalGBPString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+
+ // Amount (AUD)
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ auto AmtUSD = new QLabel(confirm.sendToAddrs);
+ AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
+ AmtUSD->setText(toAddr.amount.toDecimalAUDString());
+ AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
+ confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
+ }
// Memo
if (Settings::isZAddress(toAddr.addr) && !toAddr.memo.isEmpty()) {
row++;
@@ -588,7 +748,29 @@ bool MainWindow::confirmTx(Tx tx, RecurringPaymentInfo* rpi) {
minerFeeUSD->setObjectName(QStringLiteral("minerFeeUSD"));
minerFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
confirm.gridLayout->addWidget(minerFeeUSD, row, 2, 1, 1);
- minerFeeUSD->setText(tx.fee.toDecimalUSDString());
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ minerFeeUSD->setText(tx.fee.toDecimalUSDString());
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ minerFeeUSD->setText(tx.fee.toDecimalEURString());
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ minerFeeUSD->setText(tx.fee.toDecimalBTCString());
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ minerFeeUSD->setText(tx.fee.toDecimalCNYString());
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ minerFeeUSD->setText(tx.fee.toDecimalRUBString());
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ minerFeeUSD->setText(tx.fee.toDecimalCADString());
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ minerFeeUSD->setText(tx.fee.toDecimalSGDString());
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ minerFeeUSD->setText(tx.fee.toDecimalCHFString());
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ minerFeeUSD->setText(tx.fee.toDecimalINRString());
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ minerFeeUSD->setText(tx.fee.toDecimalGBPString());
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ minerFeeUSD->setText(tx.fee.toDecimalAUDString());
+ }
}
// Recurring payment info, show only if there is exactly one destination address
diff --git a/src/settings.cpp b/src/settings.cpp
index e21eddc..ba8207b 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -74,11 +74,11 @@ bool Settings::isTAddress(QString addr) {
return addr.startsWith("R");
}
-int Settings::gethushdVersion() {
+QString Settings::gethushdVersion() {
return _hushdVersion;
}
-void Settings::sethushdVersion(int version) {
+void Settings::sethushdVersion(QString version) {
_hushdVersion = version;
}
@@ -105,6 +105,36 @@ bool Settings::isSaplingActive() {
double Settings::getZECPrice() {
return ZECPrice;
}
+double Settings::getEURPrice() {
+ return EURPrice;
+}
+double Settings::getBTCPrice() {
+ return BTCPrice;
+}
+double Settings::getCNYPrice() {
+ return CNYPrice;
+}
+double Settings::getRUBPrice() {
+ return RUBPrice;
+}
+double Settings::getCADPrice() {
+ return CADPrice;
+}
+double Settings::getSGDPrice() {
+ return SGDPrice;
+}
+double Settings::getCHFPrice() {
+ return CHFPrice;
+}
+double Settings::getINRPrice() {
+ return INRPrice;
+}
+double Settings::getGBPPrice() {
+ return GBPPrice;
+}
+double Settings::getAUDPrice() {
+ return AUDPrice;
+}
bool Settings::getCheckForUpdates() {
return QSettings().value("options/allowcheckupdates", true).toBool();
@@ -122,6 +152,19 @@ void Settings::setAllowFetchPrices(bool allow) {
QSettings().setValue("options/allowfetchprices", allow);
}
+QString Settings::get_currency_name() {
+ // Load from the QT Settings.
+ return QSettings().value("options/currency_name", false).toString();
+}
+
+void Settings::set_currency_name(QString currency_name) {
+ QSettings().setValue("options/currency_name", currency_name);
+
+
+
+}
+
+
QString Settings::get_theme_name() {
// Load from the QT Settings.
return QSettings().value("options/theme_name", false).toString();
diff --git a/src/settings.h b/src/settings.h
index b4253d2..25ef294 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -42,8 +42,8 @@ public:
bool isSyncing();
void setSyncing(bool syncing);
- int gethushdVersion();
- void sethushdVersion(int version);
+ QString gethushdVersion();
+ void sethushdVersion(QString version);
void setUseEmbedded(bool r) { _useEmbedded = r; }
bool useEmbedded() { return _useEmbedded; }
@@ -63,10 +63,34 @@ public:
QString get_theme_name();
void set_theme_name(QString theme_name);
+ QString get_currency_name();
+ void set_currency_name(QString currency_name);
+
+
bool isSaplingActive();
void setZECPrice(double p) { ZECPrice = p; }
+ void setEURPrice(double p) { EURPrice = p; }
+ void setBTCPrice(double p) { BTCPrice = p; }
+ void setCNYPrice(double p) { CNYPrice = p; }
+ void setRUBPrice(double p) { RUBPrice = p; }
+ void setCADPrice(double p) { CADPrice = p; }
+ void setSGDPrice(double p) { SGDPrice = p; }
+ void setCHFPrice(double p) { CHFPrice = p; }
+ void setINRPrice(double p) { INRPrice = p; }
+ void setGBPPrice(double p) { GBPPrice = p; }
+ void setAUDPrice(double p) { AUDPrice = p; }
double getZECPrice();
+ double getEURPrice();
+ double getBTCPrice();
+ double getCNYPrice();
+ double getRUBPrice();
+ double getCADPrice();
+ double getSGDPrice();
+ double getCHFPrice();
+ double getINRPrice();
+ double getGBPPrice();
+ double getAUDPrice();
// Static stuff
static const QString txidStatusMessage;
@@ -95,13 +119,12 @@ public:
static bool isValidAddress(QString addr);
- static QString getChainName() { return QString("main"); }
+ static QString getDefaultChainName() { return QString("main"); }
static const QString labelRegExp;
- static const int updateSpeed = 20 * 1000; // 10 sec
- static const int quickUpdateSpeed = 5 * 1000; // 3 sec
- static const int priceRefreshSpeed = 60 * 60 * 1000; // 15 mins
+ static const int updateSpeed = 30 * 1000; // 30 sec
+ static const int priceRefreshSpeed = 5 * 60 * 1000; // 1 hr
private:
// This class can only be accessed through Settings::getInstance()
@@ -114,11 +137,21 @@ private:
bool _isTestnet = false;
bool _isSyncing = false;
int _blockNumber = 0;
- int _hushdVersion = 0;
+ QString _hushdVersion = 0;
bool _useEmbedded = false;
bool _headless = false;
double ZECPrice = 0.0;
+ double BTCPrice = 0.0;
+ double EURPrice = 0.0;
+ double CNYPrice = 0.0;
+ double RUBPrice = 0.0;
+ double CADPrice = 0.0;
+ double SGDPrice = 0.0;
+ double CHFPrice = 0.0;
+ double INRPrice = 0.0;
+ double GBPPrice = 0.0;
+ double AUDPrice = 0.0;
};
diff --git a/src/settings.ui b/src/settings.ui
index 8a749da..5f2bf52 100644
--- a/src/settings.ui
+++ b/src/settings.ui
@@ -6,16 +6,10 @@
0
0
- 540
+ 733
539
-
-
- 540
- 500
-
-
Settings
@@ -26,7 +20,7 @@
-
- 0
+ 1
@@ -52,19 +46,20 @@
- Server
+ Lightwallet Server
-
-
-
-
-
-
-
- -
-
+
+
-
+
+
+ true
+
+
+
+
-
@@ -85,152 +80,218 @@
Options
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
- default
-
-
- -
-
- blue
-
-
- -
-
- light
-
-
- -
-
- dark
-
-
-
+
+
+
+ 80
+ 110
+ 80
+ 25
+
+
+
+
+ 0
+ 0
+
+
+ -
+
+ default
+
- -
-
-
- Fetch hush / USD prices
-
-
+
-
+
+ blue
+
- -
-
-
- Check github for updates at startup
-
-
+
-
+
+ light
+
- -
-
-
- Connect to github on startup to check for updates
-
-
+
-
+
+ dark
+
- -
-
-
-
- 0
- 0
-
-
-
- Theme
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
+
+
+
+
+ 9
+ 61
+ 184
+ 23
+
+
+
+ Fetch hush prices
+
+
+
+
+
+ 9
+ 9
+ 267
+ 23
+
+
+
+ Check github for updates at startup
+
+
+
+
+
+ 9
+ 38
+ 340
+ 17
+
+
+
+ Connect to github on startup to check for updates
+
+
+
+
+
+ 9
+ 113
+ 47
+ 17
+
+
+
+
+ 0
+ 0
+
+
+
+ Theme
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ 10
+ 180
+ 500
+ 16
+
+
+
+
+ 0
+ 0
+
+
+
+ Qt::Horizontal
+
+
+
+
+
+ 9
+ 90
+ 297
+ 17
+
+
+
+ Connect to the internet to fetch hush prices
+
+
+
+
+
+ 10
+ 150
+ 61
+ 20
+
+
+
+
+ 0
+ 0
+
+
+
+ Currency
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+
+
+ 80
+ 150
+ 80
+ 25
+
+
+
+
+ 0
+ 0
+
+
+ -
+
+ AUD
+
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
+
-
+
+ BTC
+
- -
-
-
-
- 0
- 0
-
-
-
- Qt::Horizontal
-
-
+
-
+
+ CAD
+
- -
-
-
- Connect to the internet to fetch hush prices
-
-
+
-
+
+ CHF
+
-
-
-
-
- Troubleshooting
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
+
-
+
+ CNY
+
- -
-
-
- Qt::Horizontal
-
-
+
-
+
+ EUR
+
- -
-
-
- Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart hushWallet for this to take effect
-
-
- true
-
-
+
-
+
+ GBP
+
- -
-
-
- Rescan
-
-
+
-
+
+ INR
+
-
+ -
+
+ USD
+
+
+
diff --git a/src/txtablemodel.cpp b/src/txtablemodel.cpp
index b25f2d7..23920b2 100644
--- a/src/txtablemodel.cpp
+++ b/src/txtablemodel.cpp
@@ -70,15 +70,18 @@ bool TxTableModel::exportToCsv(QString fileName) const {
}
QString TxTableModel::concatMultipleMemos(const TransactionItem& dat) const {
- // Concat all the memos
- QString memo;
- for (auto item : dat.items) {
- if (!item.memo.trimmed().isEmpty()) {
- memo += item.address + ": \"" + item.memo + "\"\n";
+ if (dat.items.length() == 1) {
+ return dat.items[0].memo;
+ } else {
+ // Concat all the memos
+ QString memo;
+ for (auto item : dat.items) {
+ if (!item.memo.trimmed().isEmpty()) {
+ memo += item.address + ": \"" + item.memo + "\"\n";
+ }
}
+ return memo;
}
-
- return memo;
};
QVariant TxTableModel::data(const QModelIndex &index, int role) const {
@@ -155,7 +158,31 @@ QVariant TxTableModel::data(const QModelIndex &index, int role) const {
for (int i=0; i < dat.items.length(); i++) {
total = total + dat.items[i].amount;
}
- return total.toDecimalUSDString();
+ if (Settings::getInstance()->get_currency_name() == "USD") {
+ return total.toDecimalUSDString();
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ return total.toDecimalEURString();
+ } else if (Settings::getInstance()->get_currency_name() == "BTC") {
+ return total.toDecimalBTCString();
+ } else if (Settings::getInstance()->get_currency_name() == "EUR") {
+ return total.toDecimalEURString();
+ } else if (Settings::getInstance()->get_currency_name() == "CNY") {
+ return total.toDecimalCNYString();
+ } else if (Settings::getInstance()->get_currency_name() == "RUB") {
+ return total.toDecimalRUBString();
+ } else if (Settings::getInstance()->get_currency_name() == "CAD") {
+ return total.toDecimalCADString();
+ } else if (Settings::getInstance()->get_currency_name() == "SGD") {
+ return total.toDecimalSGDString();
+ } else if (Settings::getInstance()->get_currency_name() == "CHF") {
+ return total.toDecimalCHFString();
+ } else if (Settings::getInstance()->get_currency_name() == "INR") {
+ return total.toDecimalINRString();
+ } else if (Settings::getInstance()->get_currency_name() == "GBP") {
+ return total.toDecimalGBPString();
+ } else if (Settings::getInstance()->get_currency_name() == "AUD") {
+ return total.toDecimalAUDString();
+ }
}
}
}
diff --git a/src/version.h b/src/version.h
index c404d2b..da35bc4 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define APP_VERSION "1.0.1"
+#define APP_VERSION "1.1.0"
diff --git a/src/websockets.cpp b/src/websockets.cpp
index cd9d5ad..4f0a07b 100644
--- a/src/websockets.cpp
+++ b/src/websockets.cpp
@@ -112,7 +112,7 @@ void WormholeClient::connect() {
QObject::connect(m_webSocket, &QWebSocket::connected, this, &WormholeClient::onConnected);
QObject::connect(m_webSocket, &QWebSocket::disconnected, this, &WormholeClient::closed);
- m_webSocket->open(QUrl("wss://wormhole.silentdragonlite.com:443"));
+ m_webSocket->open(QUrl("wss://wormhole.myhush.org:443"));
//m_webSocket->open(QUrl("ws://127.0.0.1:7070"));
}