diff --git a/res/silentdragon_template.ts b/res/silentdragon_template.ts index f214a46..84ff764 100644 --- a/res/silentdragon_template.ts +++ b/res/silentdragon_template.ts @@ -1,17 +1,17 @@ - + AddressBookModel Label - YOUR_TRANSLATION_HERE + Address - YOUR_TRANSLATION_HERE + @@ -19,24 +19,16 @@ Address - YOUR_TRANSLATION_HERE + Amount - YOUR_TRANSLATION_HERE + ConnectionDialog - - silentdragon - YOUR_TRANSLATION_HERE - - - Starting Up - YOUR_TRANSLATION_HERE - SilentDragon @@ -51,69 +43,70 @@ MainWindow - silentdragon - YOUR_TRANSLATION_HERE + + SilentDragon + Balance - YOUR_TRANSLATION_HERE + Summary - YOUR_TRANSLATION_HERE + Shielded - YOUR_TRANSLATION_HERE + Transparent - YOUR_TRANSLATION_HERE + Total - YOUR_TRANSLATION_HERE + Some transactions are not yet confirmed - YOUR_TRANSLATION_HERE + Address Balances - YOUR_TRANSLATION_HERE + Send - YOUR_TRANSLATION_HERE + From - YOUR_TRANSLATION_HERE + Address Balance - YOUR_TRANSLATION_HERE + Send To - YOUR_TRANSLATION_HERE + Recipient - YOUR_TRANSLATION_HERE + @@ -122,13 +115,13 @@ Address - YOUR_TRANSLATION_HERE + Address Book - YOUR_TRANSLATION_HERE + @@ -136,12 +129,12 @@ Amount - YOUR_TRANSLATION_HERE + Max Available - YOUR_TRANSLATION_HERE + @@ -150,16 +143,16 @@ - - + + Memo - YOUR_TRANSLATION_HERE + Add Recipient - YOUR_TRANSLATION_HERE + @@ -180,100 +173,42 @@ Miner Fee - YOUR_TRANSLATION_HERE + 0 - YOUR_TRANSLATION_HERE + Cancel - YOUR_TRANSLATION_HERE + Receive - YOUR_TRANSLATION_HERE + Address Type - YOUR_TRANSLATION_HERE - - - - Local Services - - - - - Longest Chain - - &Send Duke Feedback - - - - - &Hush Discord - - - - - &Hush Website - - - - - - Export transactions - - - - - Pay HUSH &URI... - - - - - Connect mobile &app - - - - - Ctrl+M - - - - - Request HUSH... + + Shielded Address (Private, Anonymous) - - Validate Address + + Transparent Address (Public, Metadata-Leaking) - - z-Addr(Sapling) - YOUR_TRANSLATION_HERE - - - t-Addr - YOUR_TRANSLATION_HERE - - - z-Addr(Sprout) - YOUR_TRANSLATION_HERE - New Address - YOUR_TRANSLATION_HERE + @@ -283,12 +218,12 @@ Label - YOUR_TRANSLATION_HERE + Update Label - YOUR_TRANSLATION_HERE + @@ -298,28 +233,28 @@ Optional - YOUR_TRANSLATION_HERE + - + Export Private Key - YOUR_TRANSLATION_HERE + Transactions - YOUR_TRANSLATION_HERE + hushd - YOUR_TRANSLATION_HERE + You are currently not mining - YOUR_TRANSLATION_HERE + @@ -335,22 +270,43 @@ - - - + + + + Loading... - YOUR_TRANSLATION_HERE + Block height - YOUR_TRANSLATION_HERE + Notarized Hash + + + + + + + + + + + + + + + + + + | + + Notarized txid @@ -397,441 +353,429 @@ - - Network solution rate - YOUR_TRANSLATION_HERE - - - - Connections - YOUR_TRANSLATION_HERE + + Local Services + - - - - - - - - - - - - - - - - | - YOUR_TRANSLATION_HERE + + Longest Chain + - - SilentDragon + + Wallet Transactions - - Shielded Address (Private, Anonymous) + + Network solution rate - - Transparent Address (Public, Metadata-Leaking) + + Connections - + &File - YOUR_TRANSLATION_HERE + - + &Help - YOUR_TRANSLATION_HERE + - + &Apps - YOUR_TRANSLATION_HERE + - + &Edit - YOUR_TRANSLATION_HERE + - + E&xit - YOUR_TRANSLATION_HERE + - + &About - YOUR_TRANSLATION_HERE + - + &Settings - YOUR_TRANSLATION_HERE + - + Ctrl+P - YOUR_TRANSLATION_HERE + - &Donate - YOUR_TRANSLATION_HERE + + &Send Duke Feedback + - + + &Hush Discord + + + + + &Hush Website + + + + Check github.com for &updates - YOUR_TRANSLATION_HERE + - + Sapling &turnstile - YOUR_TRANSLATION_HERE + - + Ctrl+A, Ctrl+T - YOUR_TRANSLATION_HERE + - + &Import private key - YOUR_TRANSLATION_HERE + - + &Export all private keys - YOUR_TRANSLATION_HERE + - + &z-board.net - YOUR_TRANSLATION_HERE + - + Ctrl+A, Ctrl+Z - YOUR_TRANSLATION_HERE + - + Address &book - YOUR_TRANSLATION_HERE + - + Ctrl+B - YOUR_TRANSLATION_HERE + - + &Backup wallet.dat - YOUR_TRANSLATION_HERE - - - Thanks for supporting silentdragon! - YOUR_TRANSLATION_HERE - - - Donate 0.01 - YOUR_TRANSLATION_HERE + - to support silentdragon - YOUR_TRANSLATION_HERE + + + Export transactions + - - You are on testnet, your post won't actually appear on z-board.net - YOUR_TRANSLATION_HERE + + Pay HUSH &URI... + - - You need a sapling address with available balance to post - YOUR_TRANSLATION_HERE + + Connect mobile &app + - - - Computing Tx: - YOUR_TRANSLATION_HERE + + Ctrl+M + - The keys were imported. It may take several minutes to rescan the blockchain. Until then, functionality may be limited - YOUR_TRANSLATION_HERE + + Request HUSH... + - - Private key import rescan finished - YOUR_TRANSLATION_HERE + + Validate Address + - Please paste your private keys (z-Addr or t-Addr) here, one per line - YOUR_TRANSLATION_HERE + + Restart + - The keys will be imported into your connected hushd node - YOUR_TRANSLATION_HERE + + Please restart SilentDragon to have the theme apply + - + Tor configuration is available only when running an embedded hushd. - + You're using an external hushd. Please restart hushd with -rescan - + You're using an external hushd. Please restart hushd with -reindex - + Enable Tor - + Connection over Tor has been enabled. To use this feature, you need to restart SilentDragon. - + Disable Tor - + Connection over Tor has been disabled. To fully disconnect from Tor, you need to restart SilentDragon. - + SilentDragon needs to restart to rescan/reindex. SilentDragon will now close, please restart SilentDragon to continue - + Restart SilentDragon - + Some feedback about SilentDragon or Hush... - + Send Duke some private and shielded feedback about - + or SilentDragon - + Enter Address to validate - + Transparent or Shielded Address: - + + Private key import rescan finished + + + + Paste HUSH URI - + Error paying Hush URI - + URI should be of the form 'hush:<addr>?amt=x&memo=y - + Please paste your private keys here, one per line - + The keys will be imported into your connected Hush node - + The keys were imported! It may take several minutes to rescan the blockchain. Until then, functionality may be limited - + Error - + Error exporting transactions, file was not saved - + No wallet.dat - YOUR_TRANSLATION_HERE + - + Couldn't find the wallet.dat on this computer - YOUR_TRANSLATION_HERE + - + You need to back it up from the machine hushd is running on - YOUR_TRANSLATION_HERE + - + Backup wallet.dat - YOUR_TRANSLATION_HERE + - + Couldn't backup - YOUR_TRANSLATION_HERE + - + Couldn't backup the wallet.dat file. - YOUR_TRANSLATION_HERE + - + You need to back it up manually. - YOUR_TRANSLATION_HERE + - + These are all the private keys for all the addresses in your wallet - YOUR_TRANSLATION_HERE + - + Private key for - YOUR_TRANSLATION_HERE + - + Save File - YOUR_TRANSLATION_HERE + - + Unable to open file - YOUR_TRANSLATION_HERE + - - + + Copy address - YOUR_TRANSLATION_HERE + - - - + + + Copied to clipboard - YOUR_TRANSLATION_HERE + - + Get private key - YOUR_TRANSLATION_HERE + - + Shield balance to Sapling - YOUR_TRANSLATION_HERE + - - + + View on block explorer - YOUR_TRANSLATION_HERE + - + Address Asset Viewer - + Convert Address - - Migrate to Sapling - YOUR_TRANSLATION_HERE - - - + Copy txid - YOUR_TRANSLATION_HERE + - + View Payment Request - + View Memo - YOUR_TRANSLATION_HERE + - + Reply to - + Created new t-Addr - YOUR_TRANSLATION_HERE + - + Copy Address - + Address has been previously used - + Address is unused Recipient - YOUR_TRANSLATION_HERE + @@ -842,7 +786,7 @@ Only z-addresses can have memos - YOUR_TRANSLATION_HERE + @@ -867,24 +811,24 @@ Memos can only be used with z-addresses - YOUR_TRANSLATION_HERE + The memo field can only be used with a z-address. - YOUR_TRANSLATION_HERE + doesn't look like a z-address - YOUR_TRANSLATION_HERE + Change from - YOUR_TRANSLATION_HERE + @@ -899,22 +843,27 @@ doesn't look like a z-address Transaction Error - YOUR_TRANSLATION_HERE + + + + + Computing Tx: + From Address is Invalid - YOUR_TRANSLATION_HERE + Recipient Address - YOUR_TRANSLATION_HERE + is Invalid - YOUR_TRANSLATION_HERE + @@ -928,7 +877,7 @@ doesn't look like a z-address Memo - YOUR_TRANSLATION_HERE + @@ -951,6 +900,11 @@ doesn't look like a z-address Connect Mobile App + + + Scan this QRCode in SilentDragonAndroid to connect your device + + QR Code @@ -966,11 +920,6 @@ doesn't look like a z-address Allow connections over the internet via SilentDragon wormhole - - - Scan this QRCode in SilentDragonAndroid to connect your device - - SilentDragonAndroid @@ -1000,10 +949,6 @@ doesn't look like a z-address PrivKey - - Private Key - YOUR_TRANSLATION_HERE - Private Keys @@ -1013,440 +958,379 @@ doesn't look like a z-address QObject - - Attempting autoconnect - YOUR_TRANSLATION_HERE - - - - Starting embedded hushd - YOUR_TRANSLATION_HERE - - - - hushd is set to run as daemon - YOUR_TRANSLATION_HERE - - - - Waiting for hushd - YOUR_TRANSLATION_HERE - - - You have hushd set to start as a daemon, which can cause problems with silentdragon - -.Please remove the following line from your zcash.conf and restart silentdragon -daemon=1 - YOUR_TRANSLATION_HERE - - - Couldn't start the embedded hushd. - -Please try restarting. - -If you previously started hushd with custom arguments, you might need to reset zcash.conf. - -If all else fails, please run hushd manually. - YOUR_TRANSLATION_HERE - - - Couldn't connect to hushd configured in zcash.conf. - -Not starting embedded hushd because --no-embedded was passed - YOUR_TRANSLATION_HERE - - - - All Downloads Finished Successfully! - YOUR_TRANSLATION_HERE - - - - Couldn't download params. Please check the help site for more info. - YOUR_TRANSLATION_HERE - - - - The process returned - YOUR_TRANSLATION_HERE - - - - You have hushd set to start as a daemon, which can cause problems with SilentDragon - -.Please remove the following line from your HUSH3.conf and restart SilentDragon -daemon=1 + + Pick - - Couldn't start the embedded hushd. - -Please try restarting. - -If you previously started hushd with custom arguments, you might need to reset HUSH3.conf. - -If all else fails, please run hushd manually. + + Address or Label Error - - Couldn't connect to hushd configured in HUSH3.conf. - -Not starting embedded hushd because --no-embedded was passed + + Address or Label cannot be empty - - Hide Advanced Config + + Address Format Error - - Show Advanced Config + + %1 doesn't seem to be a valid Hush address. - - Choose data directory + + Label Error - - Could not create HUSH3.conf. + + The label '%1' already exists. Please remove the existing label. - - - Downloading - YOUR_TRANSLATION_HERE + + Import Address Book + - - more remaining ) - YOUR_TRANSLATION_HERE + + Unable to open file + - - MB of - YOUR_TRANSLATION_HERE + + Address Book Import Done + - - MB at - YOUR_TRANSLATION_HERE + + Imported %1 new Address book entries + - - There was an error! : + + Copy address - - Downloading blocks - YOUR_TRANSLATION_HERE + + Copied to clipboard + - - Block height - YOUR_TRANSLATION_HERE + + Delete label + - - Syncing - YOUR_TRANSLATION_HERE + + Attempting autoconnect + - - Connected - YOUR_TRANSLATION_HERE + + Starting embedded hushd + - - testnet: - YOUR_TRANSLATION_HERE + + hushd is set to run as daemon + - - Connected to hushd - YOUR_TRANSLATION_HERE + + Waiting for hushd + - - hushd has no peer connections! Network issues? + + You have hushd set to start as a daemon, which can cause problems with SilentDragon + +.Please remove the following line from your HUSH3.conf and restart SilentDragon +daemon=1 - - There was an error connecting to hushd. The error was - YOUR_TRANSLATION_HERE + + Couldn't start the embedded hushd. + +Please try restarting. + +If you previously started hushd with custom arguments, you might need to reset HUSH3.conf. + +If all else fails, please run hushd manually. + - - Update Available + + The process returned - - A new release v%1 is available! You have v%2. + + Couldn't connect to hushd configured in HUSH3.conf. -Would you like to visit the releases page? +Not starting embedded hushd because --no-embedded was passed - - No updates available + + Hide Advanced Config - - You already have the latest release v%1 + + Show Advanced Config - - Please wait for SilentDragon to exit + + Choose data directory - - - - The transaction with id - YOUR_TRANSLATION_HERE + + Could not create HUSH3.conf. + - - - - failed. The error was - YOUR_TRANSLATION_HERE + + All Downloads Finished Successfully! + - - - - failed - YOUR_TRANSLATION_HERE + + Couldn't download params. Please check the help site for more info. + - - - - Tx - YOUR_TRANSLATION_HERE + + + Downloading + - - tx computing. This can take several minutes. - YOUR_TRANSLATION_HERE + + more remaining ) + - Please wait for silentdragon to exit - YOUR_TRANSLATION_HERE + + MB of + - - Waiting for hushd to exit - YOUR_TRANSLATION_HERE + + MB at + failed. Please check the help site for more info - YOUR_TRANSLATION_HERE + hushd error - YOUR_TRANSLATION_HERE + - + A manual connection was requested, but the settings are not configured. Please set the host/port and user/password in the Edit->Settings menu. - YOUR_TRANSLATION_HERE + - + Could not connect to hushd configured in settings. Please set the host/port and user/password in the Edit->Settings menu. - YOUR_TRANSLATION_HERE + - + Authentication failed. The username / password you specified was not accepted by hushd. Try changing it in the Edit->Settings menu - YOUR_TRANSLATION_HERE + - + Your hushd is starting up. Please wait. - YOUR_TRANSLATION_HERE + - + This may take several hours, grab some popcorn - - + + Connection Error - YOUR_TRANSLATION_HERE + - - + - Transaction Error - YOUR_TRANSLATION_HERE + - There was an error sending the transaction. The error was: - YOUR_TRANSLATION_HERE + + There was an error! : + - - + + No Connection - YOUR_TRANSLATION_HERE + - - Address Format Error - YOUR_TRANSLATION_HERE + + Downloading blocks + - doesn't seem to be a valid Zcash address. - YOUR_TRANSLATION_HERE + + Block height + - - Pick + + Syncing - - Address or Label Error + + Connected - - Address or Label cannot be empty + + testnet: - - %1 doesn't seem to be a valid Hush address. + + Connected to hushd - - Label Error + + hushd has no peer connections! Network issues? - - The label '%1' already exists. Please remove the existing label. + + There was an error connecting to hushd. The error was - - Import Address Book + + tx computing. This can take several minutes. - - Unable to open file - YOUR_TRANSLATION_HERE + + Update Available + - - Address Book Import Done + + A new release v%1 is available! You have v%2. + +Would you like to visit the releases page? - - Imported %1 new Address book entries + + No updates available - - Copy address - YOUR_TRANSLATION_HERE + + You already have the latest release v%1 + - - Copied to clipboard - YOUR_TRANSLATION_HERE + + Please enhance your calm and wait for SilentDragon to exit + - - Delete label - YOUR_TRANSLATION_HERE + + Waiting for hushd to exit, y'all + - - Tx submitted (right click to copy) txid: - YOUR_TRANSLATION_HERE + + Tx + + + + + failed + - - Locked funds - YOUR_TRANSLATION_HERE + + The transaction with id + - - Could not initiate migration. -You either have unconfirmed funds or the balance is too low for an automatic migration. - YOUR_TRANSLATION_HERE + + failed. The error was + - - Computing Tx: - YOUR_TRANSLATION_HERE + + Tx submitted (right click to copy) txid: + Type - YOUR_TRANSLATION_HERE + Address - YOUR_TRANSLATION_HERE + Date/Time - YOUR_TRANSLATION_HERE + Amount - YOUR_TRANSLATION_HERE + - + Connected directly - + Connected over the internet via SilentDragon wormhole service - + Node is still syncing. - - No sapling or transparent addresses with enough balance to spend. + + No addresses with enough balance to spend! Try sweeping funds into one address @@ -1508,7 +1392,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Amount - YOUR_TRANSLATION_HERE + @@ -1523,7 +1407,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Memo - YOUR_TRANSLATION_HERE + @@ -1571,204 +1455,177 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Settings - YOUR_TRANSLATION_HERE + hushd connection - YOUR_TRANSLATION_HERE + Host - YOUR_TRANSLATION_HERE + Port - YOUR_TRANSLATION_HERE + RPC Username - YOUR_TRANSLATION_HERE + RPC Password - YOUR_TRANSLATION_HERE + Options - YOUR_TRANSLATION_HERE - - - - Check github for updates at startup - - Connect to the Tor network via SOCKS proxy running on 127.0.0.1:9050. Please note that you'll have to install and run the Tor service externally. + + Theme - - Shielded transactions are saved locally and shown in the transactions tab. If you uncheck this, shielded transactions will not appear in the transactions tab. - YOUR_TRANSLATION_HERE - - - - Connect via Tor + + default - - Connect to github on startup to check for updates + + blue - - Connect to the internet to fetch HUSH prices + + light - - Fetch HUSH / USD prices + + dark - - Troubleshooting + + Connect via Tor - - Reindex + + Check github for updates at startup - - Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart SilentDragon for this to take effect + + Remember shielded transactions - - Rescan + + Normally, change from t-Addresses goes to another t-Address. Checking this option will send the change to your shielded sapling address instead. Check this option to increase your privacy. - - Rebuild the entire blockchain from the genesis block, by rescanning all the block files. This may take several hours to days, depending on your hardware. You need to restart SilentDragon for this to take effect + + Allow overriding the default fees when sending transactions. Enabling this option may compromise your privacy since fees are transparent. - + Clear History - YOUR_TRANSLATION_HERE + - - Remember shielded transactions - YOUR_TRANSLATION_HERE + + Shielded transactions are saved locally and shown in the transactions tab. If you uncheck this, shielded transactions will not appear in the transactions tab. + - + Allow custom fees - YOUR_TRANSLATION_HERE - - - - Allow overriding the default fees when sending transactions. Enabling this option may compromise your privacy since fees are transparent. - YOUR_TRANSLATION_HERE - - - - Normally, change from t-Addresses goes to another t-Address. Checking this option will send the change to your shielded sapling address instead. Check this option to increase your privacy. - YOUR_TRANSLATION_HERE + - + Shield change from t-Addresses to your sapling address - YOUR_TRANSLATION_HERE + - - - Turnstile - - - Turnstile Migration - YOUR_TRANSLATION_HERE + + Connect to the Tor network via SOCKS proxy running on 127.0.0.1:9050. Please note that you'll have to install and run the Tor service externally. + - - Migrate over - YOUR_TRANSLATION_HERE + + Connect to github on startup to check for updates + - - From - YOUR_TRANSLATION_HERE + + Connect to the internet to fetch HUSH prices + - - <html><head/><body><p>Funds from Sprout z-Addresses (which start with &quot;zc&quot;) need to be moved to the upgraded Sapling z-Addresses (which start with &quot;zs&quot;). The funds cannot be moved directly, but need to be sent through intermediate &quot;transparent&quot; addresses in privacy-preserving way.</p><p>This migration can be done automatically for you.</p></body></html> - YOUR_TRANSLATION_HERE + + Fetch HUSH / USD prices + - - To - YOUR_TRANSLATION_HERE + + Explorer + - - Balance - YOUR_TRANSLATION_HERE + + Tx Explorer URL + - - Miner Fees - YOUR_TRANSLATION_HERE + + Address Explorer URL + - - Total Balance - YOUR_TRANSLATION_HERE + + Testnet Tx Explorer URL + - - - TurnstileProgress - - Turnstile Migration Progress - YOUR_TRANSLATION_HERE + + Testnet Address Explorer URL + - - From - YOUR_TRANSLATION_HERE + + Troubleshooting + - - To - YOUR_TRANSLATION_HERE + + Reindex + - - Please ensure you have your wallet.dat backed up! - YOUR_TRANSLATION_HERE + + Rescan the blockchain for any missing wallet transactions and to correct your wallet balance. This may take several hours. You need to restart SilentDragon for this to take effect + - - Next Transaction in 4 hours - YOUR_TRANSLATION_HERE + + Rescan + - - Migration Progress - YOUR_TRANSLATION_HERE + + Rebuild the entire blockchain from the genesis block, by rescanning all the block files. This may take several hours to days, depending on your hardware. You need to restart SilentDragon for this to take effect + @@ -1820,7 +1677,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Address - YOUR_TRANSLATION_HERE + @@ -1833,7 +1690,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig About - YOUR_TRANSLATION_HERE + @@ -1841,27 +1698,27 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Address Book - YOUR_TRANSLATION_HERE + Add New Address - YOUR_TRANSLATION_HERE + Address (z-Addr or t-Addr) - YOUR_TRANSLATION_HERE + Label - YOUR_TRANSLATION_HERE + Add to Address Book - YOUR_TRANSLATION_HERE + @@ -1874,17 +1731,17 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Confirm Transaction - YOUR_TRANSLATION_HERE + From - YOUR_TRANSLATION_HERE + To - YOUR_TRANSLATION_HERE + @@ -1894,12 +1751,12 @@ You either have unconfirmed funds or the balance is too low for an automatic mig You are sending a transaction while your node is still syncing. This may not work. - YOUR_TRANSLATION_HERE + You are using a custom fee. Since fees are transparent, you are giving up some privacy. Please use this only if you know what you are doing! - YOUR_TRANSLATION_HERE + @@ -1970,7 +1827,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig From - YOUR_TRANSLATION_HERE + @@ -1980,7 +1837,7 @@ You either have unconfirmed funds or the balance is too low for an automatic mig Amount - YOUR_TRANSLATION_HERE + @@ -1990,60 +1847,12 @@ You either have unconfirmed funds or the balance is too low for an automatic mig To - YOUR_TRANSLATION_HERE + Memo - YOUR_TRANSLATION_HERE - - - - zboard - - - Post to z-board.net - YOUR_TRANSLATION_HERE - - - - Total Fee - YOUR_TRANSLATION_HERE - - - - Memo - YOUR_TRANSLATION_HERE - - - - (optional) - YOUR_TRANSLATION_HERE - - - - Send From - YOUR_TRANSLATION_HERE - - - - Post As: - YOUR_TRANSLATION_HERE - - - - <html><head/><body><p>ZBoard: Fully anonymous and untraceable chat messages based on the ZCash blockchain. <a href="http://www.z-board.net/"><span style=" text-decoration: underline; color:#0000ff;">http://www.z-board.net/</span></a></p></body></html> - YOUR_TRANSLATION_HERE - - - - Warning - YOUR_TRANSLATION_HERE - - - - Posting to Board - YOUR_TRANSLATION_HERE + diff --git a/src/connection.cpp b/src/connection.cpp index 0eda0fc..3cde27c 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -21,7 +21,7 @@ ConnectionLoader::ConnectionLoader(MainWindow* main, RPC* rpc) { connD->setupUi(d); QPixmap logo(":/img/res/logobig.gif"); connD->topIcon->setBasePixmap(logo.scaled(512, 512, Qt::KeepAspectRatio, Qt::SmoothTransformation)); - main->logger->write("set topIcon"); + //main->logger->write("set topIcon"); } ConnectionLoader::~ConnectionLoader() { @@ -129,7 +129,7 @@ QString randomPassword() { } /** - * This will create a new HUSH3.conf, download Zcash parameters. + * This will create a new HUSH3.conf and download params if they cannot be found */ void ConnectionLoader::createZcashConf() { main->logger->write("createZcashConf"); @@ -460,7 +460,7 @@ Connection* ConnectionLoader::makeConnection(std::shared_ptr c } void ConnectionLoader::refreshZcashdState(Connection* connection, std::function refused) { - main->logger->write("refreshZcashdState"); + main->logger->write("refreshing state"); json payload = { {"jsonrpc", "1.0"}, diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index fcf60ab..cdb2fc6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,4 +1,4 @@ -// Copyright 2019 The Hush Developers +// Copyright 2019-2020 The Hush Developers // Released under the GPLv3 #include "mainwindow.h" #include "addressbook.h" @@ -227,13 +227,22 @@ void MainWindow::setupStatusBar() { menu.addAction("Copy txid", [=]() { QGuiApplication::clipboard()->setText(txid); }); - menu.addAction("View tx on block explorer", [=]() { + menu.addAction("Copy block explorer link", [=]() { QString url; auto explorer = Settings::getInstance()->getExplorer(); if (Settings::getInstance()->isTestnet()) { url = explorer.testnetTxExplorerUrl + txid; + } else { + url = explorer.txExplorerUrl + txid; } - else { + QGuiApplication::clipboard()->setText(url); + }); + menu.addAction("View tx on block explorer", [=]() { + QString url; + auto explorer = Settings::getInstance()->getExplorer(); + if (Settings::getInstance()->isTestnet()) { + url = explorer.testnetTxExplorerUrl + txid; + } else { url = explorer.txExplorerUrl + txid; } QDesktopServices::openUrl(QUrl(url)); @@ -462,7 +471,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); @@ -909,7 +918,6 @@ void MainWindow::setupBalancesTab() { QString url; auto explorer = Settings::getInstance()->getExplorer(); if (Settings::getInstance()->isTestnet()) { - //TODO url = explorer.testnetAddressExplorerUrl + addr; } else { url = explorer.addressExplorerUrl + addr; @@ -917,6 +925,17 @@ void MainWindow::setupBalancesTab() { QDesktopServices::openUrl(QUrl(url)); }); + menu.addAction("Copy explorer link", [=]() { + QString url; + auto explorer = Settings::getInstance()->getExplorer(); + if (Settings::getInstance()->isTestnet()) { + url = explorer.testnetAddressExplorerUrl + addr; + } else { + url = explorer.addressExplorerUrl + addr; + } + QGuiApplication::clipboard()->setText(url); + }); + menu.addAction(tr("Address Asset Viewer"), [=] () { QString url; url = "https://dexstats.info/assetviewer.php?address=" + addr; @@ -1001,6 +1020,17 @@ void MainWindow::setupTransactionsTab() { QDesktopServices::openUrl(QUrl(url)); }); + menu.addAction(tr("Copy block explorer link"), [=] () { + QString url; + auto explorer = Settings::getInstance()->getExplorer(); + if (Settings::getInstance()->isTestnet()) { + url = explorer.testnetTxExplorerUrl + txid; + } else { + url = explorer.txExplorerUrl + txid; + } + QGuiApplication::clipboard()->setText(url); + }); + // Payment Request if (!memo.isEmpty() && memo.startsWith("hush:")) { menu.addAction(tr("View Payment Request"), [=] () { @@ -1023,8 +1053,7 @@ void MainWindow::setupTransactionsTab() { int lastPost = memo.trimmed().lastIndexOf(QRegExp("[\r\n]+")); QString lastWord = memo.right(memo.length() - lastPost - 1); - if (Settings::getInstance()->isSaplingAddress(lastWord) || - Settings::getInstance()->isSproutAddress(lastWord)) { + if (Settings::getInstance()->isSaplingAddress(lastWord)) { menu.addAction(tr("Reply to ") + lastWord.left(25) + "...", [=]() { // First, cancel any pending stuff in the send tab by pretending to click // the cancel button @@ -1050,26 +1079,24 @@ void MainWindow::setupTransactionsTab() { }); } -void MainWindow::addNewZaddr(bool sapling) { - rpc->newZaddr(sapling, [=] (json reply) { +void MainWindow::addNewZaddr() { + rpc->newZaddr( [=] (json reply) { QString addr = QString::fromStdString(reply.get()); // Make sure the RPC class reloads the z-addrs for future use rpc->refreshAddresses(); // Just double make sure the z-address is still checked - if ( sapling && ui->rdioZSAddr->isChecked() ) { + if ( ui->rdioZSAddr->isChecked() ) { ui->listReceiveAddresses->insertItem(0, addr); ui->listReceiveAddresses->setCurrentIndex(0); - ui->statusBar->showMessage(QString::fromStdString("Created new zAddr") % - (sapling ? "(Sapling)" : "(Sprout)"), - 10 * 1000); + ui->statusBar->showMessage(QString::fromStdString("Created new Sapling zaddr"), 10 * 1000); } }); } -// Adds sapling or sprout z-addresses to the combo box. Technically, returns a +// Adds z-addresses to the combo box. Technically, returns a // lambda, which can be connected to the appropriate signal std::function MainWindow::addZAddrsToComboList(bool sapling) { return [=] (bool checked) { @@ -1089,7 +1116,7 @@ std::function MainWindow::addZAddrsToComboList(bool sapling) { // If z-addrs are empty, then create a new one. if (addrs->isEmpty()) { - addNewZaddr(sapling); + addNewZaddr(); } } }; @@ -1174,7 +1201,7 @@ void MainWindow::setupReceiveTab() { return; if (ui->rdioZSAddr->isChecked()) { - addNewZaddr(true); + addNewZaddr(); } else if (ui->rdioTAddr->isChecked()) { addNewTAddr(); } diff --git a/src/mainwindow.h b/src/mainwindow.h index 50249bb..c4aafd8 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -108,7 +108,7 @@ private: void addressChanged(int number, const QString& text); void amountChanged (int number, const QString& text); - void addNewZaddr(bool sapling); + void addNewZaddr(); std::function addZAddrsToComboList(bool sapling); void memoButtonClicked(int number, bool includeReplyTo = false); diff --git a/src/rpc.cpp b/src/rpc.cpp index 6318882..968baa7 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -154,12 +154,12 @@ void RPC::getZUnspent(const std::function& cb) { conn->doRPCWithDefaultErrorHandling(payload, cb); } -void RPC::newZaddr(bool sapling, const std::function& cb) { +void RPC::newZaddr(const std::function& cb) { json payload = { {"jsonrpc", "1.0"}, {"id", "someid"}, {"method", "z_getnewaddress"}, - {"params", { sapling ? "sapling" : "sprout" }}, + {"params", { "sapling" }}, }; conn->doRPCWithDefaultErrorHandling(payload, cb); diff --git a/src/rpc.h b/src/rpc.h index a32b63d..ef0a292 100644 --- a/src/rpc.h +++ b/src/rpc.h @@ -68,7 +68,7 @@ public: const QMap* getAllBalances() { return allBalances; } const QMap* getUsedAddresses() { return usedAddresses; } - void newZaddr(bool sapling, const std::function& cb); + void newZaddr(const std::function& cb); void newTaddr(const std::function& cb); void getZPrivKey(QString addr, const std::function& cb); diff --git a/src/scripts/dotranslations.sh b/src/scripts/dotranslations.sh old mode 100755 new mode 100644 diff --git a/src/scripts/mkmacdmg.sh b/src/scripts/mkmacdmg.sh old mode 100755 new mode 100644 index 2e6eb86..31d8dbc --- a/src/scripts/mkmacdmg.sh +++ b/src/scripts/mkmacdmg.sh @@ -17,7 +17,17 @@ case $key in shift # past argument shift # past value ;; - -c|--certificate) + -u|--username) + APPLE_USERNAME="$2" + shift # past argument + shift # past value + ;; + -p|--password) + APPLE_PASSWORD="$2" + shift # past argument + shift # past value + ;; + -c|--certificate) CERTIFICATE="$2" shift # past argument shift # past value @@ -45,6 +55,16 @@ if [ -z $HUSH_DIR ]; then exit 1; fi +if [ -z "$APPLE_USERNAME" ]; then + echo "APPLE_USERNAME is not set. Please set it the name of the MacOS developer login email to submit the binary for Apple for notarization"; + exit 1; +fi + +if [ -z "$APPLE_PASSWORD" ]; then + echo "APPLE_PASSWORD is not set. Please set it the name of the MacOS developer Application password to submit the binary for Apple for notarization"; + 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; @@ -94,31 +114,25 @@ cp $HUSH_DIR/src/hushd silentdragon.app/Contents/MacOS/ cp $HUSH_DIR/src/hush-cli silentdragon.app/Contents/MacOS/ cp $HUSH_DIR/src/komodod silentdragon.app/Contents/MacOS/ cp $HUSH_DIR/src/komodo-cli silentdragon.app/Contents/MacOS/ +cp $HUSH_DIR/sapling-output.params silentdragon.app/Contents/MacOS/ +cp $HUSH_DIR/sapling-spend.params silentdragon.app/Contents/MacOS/ $QT_PATH/bin/macdeployqt silentdragon.app codesign --deep --force --verify --verbose -s "$CERTIFICATE" --options runtime --timestamp silentdragon.app echo "[OK]" # Code Signing Note: -# On MacOS, you still need to run these 3 commands: -# xcrun altool --notarize-app -t osx -f macOS-zecwallet-v0.8.0.dmg --primary-bundle-id="com.yourcompany.zecwallet" -u "apple developer id@email.com" -p "one time password" -# xcrun altool --notarization-info -u "apple developer id@email.com" -p "one time password" -#...wait for the notarization to finish... -# xcrun stapler staple macOS-zecwallet-v0.8.0.dmg +# On MacOS, you still need to run signbinaries.sh to staple. +# echo -n "Building dmg..........." -mv silentdragon.app silentdragon.app create-dmg --volname "silentdragon-v$APP_VERSION" --volicon "res/logo.icns" --window-pos 200 120 --icon "silentdragon.app" 200 190 --app-drop-link 600 185 --hide-extension "silentdragon.app" --window-size 800 400 --hdiutil-quiet --background res/dmgbg.png artifacts/macOS-silentdragon-v$APP_VERSION.dmg silentdragon.app >/dev/null 2>&1 - -#mkdir bin/dmgbuild >/dev/null 2>&1 -#sed "s/RELEASE_VERSION/${APP_VERSION}/g" res/appdmg.json > bin/dmgbuild/appdmg.json -#cp res/logo.icns bin/dmgbuild/ -#cp res/dmgbg.png bin/dmgbuild/ - -#cp -r silentdragon.app bin/dmgbuild/ - -#appdmg --quiet bin/dmgbuild/appdmg.json artifacts/macOS-silentdragon-v$APP_VERSION.dmg >/dev/null if [ ! -f artifacts/macOS-silentdragon-v$APP_VERSION.dmg ]; then echo "[ERROR]" exit 1 fi echo "[OK]" + +# Submit to Apple for notarization +echo -n "Apple notarization....." +xcrun altool --notarize-app -t osx -f artifacts/macOS-silentdragon-v$APP_VERSION.dmg --primary-bundle-id="com.myHush.silentdragon" -u "$APPLE_USERNAME" -p "$APPLE_PASSWORD" +echo "[OK]" diff --git a/src/scripts/signbinaries.sh b/src/scripts/signbinaries.sh old mode 100755 new mode 100644 index 341b735..284a900 --- a/src/scripts/signbinaries.sh +++ b/src/scripts/signbinaries.sh @@ -24,7 +24,12 @@ if [ -z $APP_VERSION ]; then echo "APP_VERSION is not set"; exit 1; fi # Store the hash and signatures here rm -rf release/signatures -mkdir -p release/signatures +mkdir -p release/signatures + +# Staple the notarization +xcrun stapler staple artifacts/macOS-silentdragon-v$APP_VERSION.dmg + +cd artifacts cd artifacts diff --git a/src/sendtab.cpp b/src/sendtab.cpp index 4c58192..4ee0763 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -132,7 +132,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); } @@ -497,9 +497,6 @@ Tx MainWindow::createTxFromSendPage() { // Remove label if it exists addr = AddressBook::addressFromAddressLabel(addr); - // If address is sprout, then we can't send change to sapling, because of turnstile. - //sendChangeToSapling = sendChangeToSapling && !Settings::getInstance()->isSproutAddress(addr); - double amt = ui->sendToWidgets->findChild(QString("Amount") % QString::number(i+1))->text().trimmed().toDouble(); totalAmt += amt; QString memo = ui->sendToWidgets->findChild(QString("MemoTxt") % QString::number(i+1))->text().trimmed(); @@ -732,7 +729,10 @@ void MainWindow::sendButton() { QString MainWindow::doSendTxValidations(Tx tx) { //TODO: Feedback fromAddr is empty for some reason - if (!Settings::isValidAddress(tx.fromAddr)) return QString(tr("From Address is Invalid")); + if (!Settings::isValidAddress(tx.fromAddr)){ + qDebug() << "address is invalid! " << tx.fromAddr; + return QString(tr("From Address is Invalid!")); + } for (auto toAddr : tx.toAddrs) { if (!Settings::isValidAddress(toAddr.addr)) { diff --git a/src/settings.cpp b/src/settings.cpp index 5099ac4..218204d 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -35,9 +35,11 @@ void Settings::setAllowFetchPrices(bool allow) { Explorer Settings::getExplorer() { // Load from the QT Settings. QSettings s; + //TODO: make it easy for people to use other explorers like komodod.com + QString explorer = "https://explorer.myhush.org"; - auto txExplorerUrl = s.value("explorer/txExplorerUrl").toString(); - auto addressExplorerUrl = s.value("explorer/addressExplorerUrl").toString(); + auto txExplorerUrl = s.value("explorer/txExplorerUrl", explorer + "/tx/").toString(); + auto addressExplorerUrl = s.value("explorer/addressExplorerUrl", explorer + "/address/").toString(); auto testnetTxExplorerUrl = s.value("explorer/testnetTxExplorerUrl").toString(); auto testnetAddressExplorerUrl = s.value("explorer/testnetAddressExplorerUrl").toString(); @@ -225,7 +227,7 @@ unsigned int Settings::getBTCPrice() { bool Settings::getAutoShield() { // Load from Qt settings - return QSettings().value("options/autoshield", false).toBool(); + return QSettings().value("options/autoshield", true).toBool(); } void Settings::setAutoShield(bool allow) { @@ -234,7 +236,7 @@ void Settings::setAutoShield(bool allow) { bool Settings::getAllowCustomFees() { // Load from the QT Settings. - return QSettings().value("options/customfees", false).toBool(); + return QSettings().value("options/customfees", true).toBool(); } void Settings::setAllowCustomFees(bool allow) { @@ -399,7 +401,7 @@ bool Settings::isValidAddress(QString addr) { QRegExp zsexp("^zs1[a-z0-9]{75}$", Qt::CaseInsensitive); QRegExp ztsexp("^ztestsapling[a-z0-9]{76}", Qt::CaseInsensitive); QRegExp texp("^R[a-z0-9]{33}$", Qt::CaseInsensitive); - //qDebug() << "isValidAddress(" << addr << ")"; + qDebug() << "isValidAddress(" << addr << ")"; return texp.exactMatch(addr) || ztsexp.exactMatch(addr) || zsexp.exactMatch(addr); } diff --git a/src/websockets.cpp b/src/websockets.cpp index 9bba90f..dfd9bf9 100644 --- a/src/websockets.cpp +++ b/src/websockets.cpp @@ -747,9 +747,6 @@ void AppDataServer::processSendTx(QJsonObject sendTx, MainWindow* mainwindow, st auto allBalances = mainwindow->getRPC()->getAllBalances(); QList> bals; for (auto i : allBalances->keys()) { - // Filter out sprout addresses - if (Settings::getInstance()->isSproutAddress(i)) - continue; // Filter out balances that don't have the requisite amount // TODO: should this be amt+tx.fee? if (allBalances->value(i) < amt)