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!
|
||||
|
||||
|
||||
<img src="https://raw.githubusercontent.com/MyHush/SilentDragonLite/master/hushchat-screenshot.png">
|
||||
<img src="hushchat-screenshot.png">
|
||||
|
||||
## 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)
|
||||
|
||||
|
||||
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("");
|
||||
|
||||
// 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<json::number_integer_t>();
|
||||
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
||||
int total = reply["total"].get<json::number_integer_t>();;
|
||||
int zfunds = reply["zfunds"].get<json::number_integer_t>();
|
||||
int total = reply["total"].get<json::number_integer_t>();;
|
||||
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)));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -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"), [=] () {
|
||||
|
||||
@@ -180,7 +180,7 @@ private:
|
||||
void setMemoEnabled(int number, bool enabled);
|
||||
|
||||
void donate();
|
||||
void discord();
|
||||
void telegram();
|
||||
void website();
|
||||
void addressBook();
|
||||
void importPrivKey();
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user