Stuff
This commit is contained in:
21
README.md
21
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!
|
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!
|
||||||
|
|
||||||
|
|
||||||
<img src="https://raw.githubusercontent.com/MyHush/SilentDragonLite/master/hushchat-screenshot.png">
|
<img src="hushchat-screenshot.png">
|
||||||
|
|
||||||
## PRIVACY NOTICE
|
## 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/
|
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
|
## 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
|
## Install Torsocks (or any other Socks service for TOR) on Ubuntu 18.04
|
||||||
```
|
```
|
||||||
@@ -27,9 +35,10 @@ sudo apt install torsocks
|
|||||||
```
|
```
|
||||||
## Note Management
|
## 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:
|
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
|
* Defaults to sending shielded transactions, which are now enforced via consensus rules
|
||||||
* Can select funds from multiple shielded addresses in the same transaction
|
* 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
|
* 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)
|
* 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)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 75 KiB |
BIN
res/new-sdl-logo.gif
Normal file
BIN
res/new-sdl-logo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
BIN
res/sdl-logo.gif
Normal file
BIN
res/sdl-logo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
@@ -89,9 +89,10 @@ void Controller::setConnection(Connection* c)
|
|||||||
ui->statusBar->showMessage("");
|
ui->statusBar->showMessage("");
|
||||||
|
|
||||||
// If we're allowed to get the Hush Price, get the prices
|
// If we're allowed to get the Hush Price, get the prices
|
||||||
if (Settings::getInstance()->getAllowFetchPrices())
|
if (Settings::getInstance()->getAllowFetchPrices()) {
|
||||||
refreshZECPrice();
|
refreshZECPrice();
|
||||||
supplyUpdate();
|
supplyUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
// If we're allowed to check for updates, check for a new release
|
// If we're allowed to check for updates, check for a new release
|
||||||
if (Settings::getInstance()->getCheckForUpdates())
|
if (Settings::getInstance()->getCheckForUpdates())
|
||||||
@@ -688,23 +689,21 @@ void Controller::supplyUpdate() {
|
|||||||
// Get the total supply and render it with thousand decimal
|
// Get the total supply and render it with thousand decimal
|
||||||
zrpc->fetchSupply([=] (const json& reply) {
|
zrpc->fetchSupply([=] (const json& reply) {
|
||||||
int supply = reply["supply"].get<json::number_integer_t>();
|
int supply = reply["supply"].get<json::number_integer_t>();
|
||||||
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
||||||
int total = reply["total"].get<json::number_integer_t>();;
|
int total = reply["total"].get<json::number_integer_t>();;
|
||||||
if (
|
if (
|
||||||
Settings::getInstance()->get_currency_name() == "EUR" ||
|
Settings::getInstance()->get_currency_name() == "EUR" ||
|
||||||
Settings::getInstance()->get_currency_name() == "CHF" ||
|
Settings::getInstance()->get_currency_name() == "CHF" ||
|
||||||
Settings::getInstance()->get_currency_name() == "RUB"
|
Settings::getInstance()->get_currency_name() == "RUB"
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " Hush"));
|
ui->supply_taddr->setText((QLocale(QLocale::German).toString(supply)+ " HUSH"));
|
||||||
ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " Hush"));
|
ui->supply_zaddr->setText((QLocale(QLocale::German).toString(zfunds)+ " HUSH"));
|
||||||
ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " Hush"));
|
ui->supply_total->setText((QLocale(QLocale::German).toString(total)+ " HUSH"));
|
||||||
}
|
} else {
|
||||||
else
|
ui->supply_taddr->setText("HUSH " + (QLocale(QLocale::English).toString(supply)));
|
||||||
{
|
ui->supply_zaddr->setText("HUSH " +(QLocale(QLocale::English).toString(zfunds)));
|
||||||
ui->supply_taddr->setText("Hush " + (QLocale(QLocale::English).toString(supply)));
|
ui->supply_total->setText("HUSH " +(QLocale(QLocale::English).toString(total)));
|
||||||
ui->supply_zaddr->setText("Hush " +(QLocale(QLocale::English).toString(zfunds)));
|
|
||||||
ui->supply_total->setText("Hush " +(QLocale(QLocale::English).toString(total)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
// Set up Feedback action
|
// Set up Feedback action
|
||||||
QObject::connect(ui->actionDonate, &QAction::triggered, this, &MainWindow::donate);
|
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);
|
QObject::connect(ui->actionWebsite, &QAction::triggered, this, &MainWindow::website);
|
||||||
|
|
||||||
@@ -780,7 +780,7 @@ void MainWindow::setupStatusBar() {
|
|||||||
});
|
});
|
||||||
menu.addAction(tr("Copy block explorer link"), [=]() {
|
menu.addAction(tr("Copy block explorer link"), [=]() {
|
||||||
// auto explorer = Settings::getInstance()->getExplorer();
|
// 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"), [=]() {
|
menu.addAction(tr("View tx on block explorer"), [=]() {
|
||||||
@@ -852,7 +852,7 @@ void MainWindow::setupSettingsModal() {
|
|||||||
settings.chkFetchPrices->setChecked(Settings::getInstance()->getAllowFetchPrices());
|
settings.chkFetchPrices->setChecked(Settings::getInstance()->getAllowFetchPrices());
|
||||||
|
|
||||||
// List of default servers
|
// List of default servers
|
||||||
settings.cmbServer->addItem("https://lite.myhush.org");
|
settings.cmbServer->addItem("https://lite.hush.is");
|
||||||
settings.cmbServer->addItem("6onaaujm4ozaokzu.onion:80");
|
settings.cmbServer->addItem("6onaaujm4ozaokzu.onion:80");
|
||||||
|
|
||||||
|
|
||||||
@@ -906,13 +906,13 @@ void MainWindow::addressBook() {
|
|||||||
AddressBook::open(this);
|
AddressBook::open(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::discord() {
|
void MainWindow::telegram() {
|
||||||
QString url = "https://myhush.org/discord/";
|
QString url = "https://hush.is/telegram/";
|
||||||
QDesktopServices::openUrl(QUrl(url));
|
QDesktopServices::openUrl(QUrl(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::website() {
|
void MainWindow::website() {
|
||||||
QString url = "https://myhush.org";
|
QString url = "https://hush.is";
|
||||||
QDesktopServices::openUrl(QUrl(url));
|
QDesktopServices::openUrl(QUrl(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1429,7 +1429,7 @@ void MainWindow::setupTransactionsTab() {
|
|||||||
}
|
}
|
||||||
menu.addAction(tr("Copy block explorer link"), [=]() {
|
menu.addAction(tr("Copy block explorer link"), [=]() {
|
||||||
// auto explorer = Settings::getInstance()->getExplorer();
|
// 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"), [=] () {
|
menu.addAction(tr("View on block explorer"), [=] () {
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ private:
|
|||||||
void setMemoEnabled(int number, bool enabled);
|
void setMemoEnabled(int number, bool enabled);
|
||||||
|
|
||||||
void donate();
|
void donate();
|
||||||
void discord();
|
void telegram();
|
||||||
void website();
|
void website();
|
||||||
void addressBook();
|
void addressBook();
|
||||||
void importPrivKey();
|
void importPrivKey();
|
||||||
|
|||||||
@@ -264,27 +264,16 @@ void Settings::saveRestoreTableHeader(QTableView* table, QDialog* d, QString tab
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString Settings::getDefaultServer() {
|
QString Settings::getDefaultServer() {
|
||||||
return "https://lite.myhush.org";
|
return "https://lite.hush.is";
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::openAddressInExplorer(QString address) {
|
void Settings::openAddressInExplorer(QString address) {
|
||||||
QString url;
|
QString url = "https://explorer.hush.is/address/" + address;
|
||||||
if (Settings::getInstance()->isTestnet()) {
|
|
||||||
url = "https://chain.so/address/hushTEST/" + address;
|
|
||||||
} else {
|
|
||||||
url = "https://explorer.myhush.org/address/" + address;
|
|
||||||
}
|
|
||||||
QDesktopServices::openUrl(QUrl(url));
|
QDesktopServices::openUrl(QUrl(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::openTxInExplorer(QString txid) {
|
void Settings::openTxInExplorer(QString txid) {
|
||||||
QString url;
|
QString url = "https://explorer.hush.is/tx/" + txid;
|
||||||
if (Settings::getInstance()->isTestnet()) {
|
|
||||||
url = "https://chain.so/tx/hushTEST/" + txid;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
url = "https://explorer.myhush.org/tx/" + txid;
|
|
||||||
}
|
|
||||||
QDesktopServices::openUrl(QUrl(url));
|
QDesktopServices::openUrl(QUrl(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
// Copyright 2019-2021 The Hush developers
|
// Copyright 2019-2021 The Hush developers
|
||||||
// Released under the GPLv3
|
// Released under the GPLv3
|
||||||
#define APP_VERSION "1.3.11"
|
#define APP_VERSION "1.3.12"
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ void WormholeClient::connect() {
|
|||||||
qDebug() << "Invalid websocket object!";
|
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"));
|
//m_webSocket->open(QUrl("ws://127.0.0.1:7070"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user