diff --git a/README.md b/README.md index ccb24c5..b55c812 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,25 @@ SilentDragonLite is a lightwallet for HUSH ($HUSH) runs on Linux and Windows which does not require you to download the full blockchain. This is experimental software under active development! - + ## PRIVACY NOTICE -SilentDragonLite contacts a few different external websites to get various bits of data. * coingecko.com for price data API * explorer.myhush.org for explorer links * dexstats.info for address utilities, hush-lightwallet.de to get Data. +SilentDragonLite contacts a few different external websites to get various bits of data. +The first two are option features, to get real-time price data feeds and if you want +to look at explorer details. Price feed can be turned off in Settings and you can set +a custom block explorer URL as well. + +* coingecko.com for price data API (optional) +* explorer.hush.is for explorer links (optional) +* various community-run lite wallet servers to provide basic functionality (required) This means your IP address is known to these servers. Enable Tor setting in SilentDragon to prevent this, or better yet, use TAILS: https://tails.boum.org/ +or https://qubes-os.org ## Installation -Go to the releases page and grab the latest installers or binary. https://github.com/MyHush/SilentDragonLite/releases +Go to the releases page and grab the latest installers or binary. https://git.hush.is/hush/SilentDragonLite/releases ## Install Torsocks (or any other Socks service for TOR) on Ubuntu 18.04 ``` @@ -27,9 +35,10 @@ sudo apt install torsocks ``` ## 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 + +* Defaults to sending shielded transactions, which are now enforced via consensus rules +* Sapling funds need at least 2 confirmations before they can be spent (150 seconds on average for HUSH mainnet) +* Can select funds from multiple shielded addresses in the same transaction (via raw transactions) * 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) diff --git a/res/hushdlogo.gif b/res/hushdlogo.gif index 3e5e04e..bd532ca 100644 Binary files a/res/hushdlogo.gif and b/res/hushdlogo.gif differ diff --git a/res/new-sdl-logo.gif b/res/new-sdl-logo.gif new file mode 100644 index 0000000..bd532ca Binary files /dev/null and b/res/new-sdl-logo.gif differ diff --git a/res/sdl-logo.gif b/res/sdl-logo.gif new file mode 100644 index 0000000..3e5e04e Binary files /dev/null and b/res/sdl-logo.gif differ diff --git a/src/controller.cpp b/src/controller.cpp index c2e2c23..492bd9a 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -89,9 +89,10 @@ void Controller::setConnection(Connection* c) ui->statusBar->showMessage(""); // If we're allowed to get the Hush Price, get the prices - if (Settings::getInstance()->getAllowFetchPrices()) + if (Settings::getInstance()->getAllowFetchPrices()) { refreshZECPrice(); supplyUpdate(); + } // If we're allowed to check for updates, check for a new release if (Settings::getInstance()->getCheckForUpdates()) @@ -688,23 +689,21 @@ void Controller::supplyUpdate() { // Get the total supply and render it with thousand decimal zrpc->fetchSupply([=] (const json& reply) { int supply = reply["supply"].get(); - int zfunds = reply["zfunds"].get(); - int total = reply["total"].get();; + int zfunds = reply["zfunds"].get(); + int total = reply["total"].get();; if ( Settings::getInstance()->get_currency_name() == "EUR" || Settings::getInstance()->get_currency_name() == "CHF" || Settings::getInstance()->get_currency_name() == "RUB" ) { - ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " Hush")); - ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " Hush")); - ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " Hush")); - } - else - { - ui->supply_taddr->setText("Hush " + (QLocale(QLocale::English).toString(supply))); - ui->supply_zaddr->setText("Hush " +(QLocale(QLocale::English).toString(zfunds))); - ui->supply_total->setText("Hush " +(QLocale(QLocale::English).toString(total))); + ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " HUSH")); + ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " HUSH")); + ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " HUSH")); + } else { + ui->supply_taddr->setText("HUSH " + (QLocale(QLocale::English).toString(supply))); + ui->supply_zaddr->setText("HUSH " +(QLocale(QLocale::English).toString(zfunds))); + ui->supply_total->setText("HUSH " +(QLocale(QLocale::English).toString(total))); } }); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 33276df..46d34e2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -111,7 +111,7 @@ MainWindow::MainWindow(QWidget *parent) : // Set up Feedback action QObject::connect(ui->actionDonate, &QAction::triggered, this, &MainWindow::donate); - QObject::connect(ui->actionDiscord, &QAction::triggered, this, &MainWindow::discord); + QObject::connect(ui->actionDiscord, &QAction::triggered, this, &MainWindow::telegram); QObject::connect(ui->actionWebsite, &QAction::triggered, this, &MainWindow::website); @@ -780,7 +780,7 @@ void MainWindow::setupStatusBar() { }); menu.addAction(tr("Copy block explorer link"), [=]() { // auto explorer = Settings::getInstance()->getExplorer(); - QGuiApplication::clipboard()->setText("https://explorer.myhush.org/tx/" + txid); + QGuiApplication::clipboard()->setText("https://explorer.hush.is/tx/" + txid); }); menu.addAction(tr("View tx on block explorer"), [=]() { @@ -852,7 +852,7 @@ void MainWindow::setupSettingsModal() { settings.chkFetchPrices->setChecked(Settings::getInstance()->getAllowFetchPrices()); // List of default servers - settings.cmbServer->addItem("https://lite.myhush.org"); + settings.cmbServer->addItem("https://lite.hush.is"); settings.cmbServer->addItem("6onaaujm4ozaokzu.onion:80"); @@ -906,13 +906,13 @@ void MainWindow::addressBook() { AddressBook::open(this); } -void MainWindow::discord() { - QString url = "https://myhush.org/discord/"; +void MainWindow::telegram() { + QString url = "https://hush.is/telegram/"; QDesktopServices::openUrl(QUrl(url)); } void MainWindow::website() { - QString url = "https://myhush.org"; + QString url = "https://hush.is"; QDesktopServices::openUrl(QUrl(url)); } @@ -1429,7 +1429,7 @@ void MainWindow::setupTransactionsTab() { } menu.addAction(tr("Copy block explorer link"), [=]() { // auto explorer = Settings::getInstance()->getExplorer(); - QGuiApplication::clipboard()->setText("https://explorer.myhush.org/tx/" + txid); + QGuiApplication::clipboard()->setText("https://explorer.hush.is/tx/" + txid); }); menu.addAction(tr("View on block explorer"), [=] () { diff --git a/src/mainwindow.h b/src/mainwindow.h index cd29b27..df79a86 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -180,7 +180,7 @@ private: void setMemoEnabled(int number, bool enabled); void donate(); - void discord(); + void telegram(); void website(); void addressBook(); void importPrivKey(); diff --git a/src/settings.cpp b/src/settings.cpp index f5f56c2..3dc61fb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -264,27 +264,16 @@ void Settings::saveRestoreTableHeader(QTableView* table, QDialog* d, QString tab } QString Settings::getDefaultServer() { - return "https://lite.myhush.org"; + return "https://lite.hush.is"; } void Settings::openAddressInExplorer(QString address) { - QString url; - if (Settings::getInstance()->isTestnet()) { - url = "https://chain.so/address/hushTEST/" + address; - } else { - url = "https://explorer.myhush.org/address/" + address; - } + QString url = "https://explorer.hush.is/address/" + address; QDesktopServices::openUrl(QUrl(url)); } void Settings::openTxInExplorer(QString txid) { - QString url; - if (Settings::getInstance()->isTestnet()) { - url = "https://chain.so/tx/hushTEST/" + txid; - } - else { - url = "https://explorer.myhush.org/tx/" + txid; - } + QString url = "https://explorer.hush.is/tx/" + txid; QDesktopServices::openUrl(QUrl(url)); } diff --git a/src/version.h b/src/version.h index 8853b66..33ac15d 100644 --- a/src/version.h +++ b/src/version.h @@ -1,3 +1,3 @@ // Copyright 2019-2021 The Hush developers // Released under the GPLv3 -#define APP_VERSION "1.3.11" +#define APP_VERSION "1.3.12" diff --git a/src/websockets.cpp b/src/websockets.cpp index 747932a..ec8542f 100644 --- a/src/websockets.cpp +++ b/src/websockets.cpp @@ -127,7 +127,7 @@ void WormholeClient::connect() { qDebug() << "Invalid websocket object!"; } - m_webSocket->open(QUrl("wss://wormhole.myhush.org:443")); + m_webSocket->open(QUrl("wss://wormhole.hush.is:443")); //m_webSocket->open(QUrl("ws://127.0.0.1:7070")); }