From ce241164647c8c2b2eb484d3d23298a37151a9cc Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Mon, 5 Nov 2018 22:06:09 -0800 Subject: [PATCH 01/18] win32 build spec --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 80814b9..fe6a942 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ From the VS Tools command prompt ``` git clone https://github.com/adityapk00/zec-qt-wallet.git cd zec-qt-wallet -c:\Qt5\bin\qmake.exe zec-qt-wallet.pro CONFIG+=debug +c:\Qt5\bin\qmake.exe zec-qt-wallet.pro -spec win32-msvc CONFIG+=debug nmake debug\zec-qt-wallet.exe From eacf0de50dacedfb1e6dc16afc5d269ef23e6725 Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Mon, 5 Nov 2018 22:32:08 -0800 Subject: [PATCH 02/18] remove txid.ui --- src/txid.ui | 71 ----------------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 src/txid.ui diff --git a/src/txid.ui b/src/txid.ui deleted file mode 100644 index 18d31ab..0000000 --- a/src/txid.ui +++ /dev/null @@ -1,71 +0,0 @@ - - - - - Dialog - - - - 0 - 0 - 400 - 300 - - - - Dialog - - - - - 30 - 240 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From 6e1d621b8710782db17471d7843fe398d1f8c091 Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Mon, 5 Nov 2018 23:12:21 -0800 Subject: [PATCH 03/18] fix z-board memo size/other validations --- src/main.cpp | 2 +- src/mainwindow.cpp | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 36febd2..eb518f3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,7 +18,7 @@ int main(int argc, char *argv[]) qApp->setFont(QFont("Ubuntu", 11, QFont::Normal, false)); #endif - std::srand(std::time(nullptr)); + std::srand(static_cast(std::time(nullptr))); Settings::init(); QCoreApplication::setOrganizationName("zec-qt-wallet-org"); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 20afdb9..c0f9740 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -445,6 +445,9 @@ void MainWindow::postToZBoard() { Ui_zboard zb; zb.setupUi(&d); + if (rpc->getConnection() == nullptr) + return; + // Fill the from field with sapling addresses. for (auto i = rpc->getAllBalances()->keyBegin(); i != rpc->getAllBalances()->keyEnd(); i++) { if (Settings::getInstance()->isSaplingAddress(*i) && rpc->getAllBalances()->value(*i) > 0) { @@ -460,10 +463,20 @@ void MainWindow::postToZBoard() { zb.testnetWarning->setText(""); } + QRegExpValidator v(QRegExp("^[a-zA-Z0-9_]{3,20}$"), zb.postAs); + zb.postAs->setValidator(&v); + zb.feeAmount->setText(Settings::getInstance()->getZECUSDDisplayFormat(Utils::getZboardAmount() + Utils::getMinerFee())); - QObject::connect(zb.memoTxt, &QPlainTextEdit::textChanged, [=] () { - QString txt = zb.memoTxt->toPlainText(); + auto fnBuildNameMemo = [=]() -> QString { + auto memo = zb.memoTxt->toPlainText().trimmed(); + if (!zb.postAs->text().trimmed().isEmpty()) + memo = zb.postAs->text().trimmed() + ":: " + memo; + return memo; + }; + + auto fnUpdateMemoSize = [=]() { + QString txt = fnBuildNameMemo(); zb.memoSize->setText(QString::number(txt.toUtf8().size()) + "/512"); if (txt.toUtf8().size() <= 512) { @@ -472,12 +485,15 @@ void MainWindow::postToZBoard() { zb.memoSize->setStyleSheet(""); } else { - // Overweight + // Overweight zb.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); zb.memoSize->setStyleSheet("color: red;"); } - - }); + }; + + // Memo text changed + QObject::connect(zb.memoTxt, &QPlainTextEdit::textChanged, fnUpdateMemoSize); + QObject::connect(zb.postAs, &QLineEdit::textChanged, fnUpdateMemoSize); zb.memoTxt->setFocus(); From 23018c19cde716846c034bbc3a3b22f961b13475 Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Tue, 6 Nov 2018 07:58:20 -0800 Subject: [PATCH 04/18] Save/Restore window positions - #29 - Settings window - #28 - zboard - #27 - turnstile - turnstile progress - import keys - export keys --- src/addressbook.cpp | 1 + src/mainwindow.cpp | 15 +++++++++++---- src/settings.cpp | 9 +++++++++ src/settings.h | 5 +++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/addressbook.cpp b/src/addressbook.cpp index 27f98dc..02b0524 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -117,6 +117,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) { QDialog d(parent); Ui_addressBook ab; ab.setupUi(&d); + Settings::saveRestore(&d); AddressBookModel model(ab.addresses); ab.addresses->setModel(&model); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c0f9740..9765207 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -104,6 +104,7 @@ void MainWindow::turnstileProgress() { Ui_TurnstileProgress progress; QDialog d(this); progress.setupUi(&d); + Settings::saveRestore(&d); QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning); progress.msgIcon->setPixmap(icon.pixmap(64, 64)); @@ -184,6 +185,7 @@ void MainWindow::turnstileDoMigration(QString fromAddr) { Ui_Turnstile turnstile; QDialog d(this); turnstile.setupUi(&d); + Settings::saveRestore(&d); QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation); turnstile.msgIcon->setPixmap(icon.pixmap(64, 64)); @@ -235,8 +237,7 @@ void MainWindow::turnstileDoMigration(QString fromAddr) { if (!fromAddr.isEmpty()) turnstile.migrateZaddList->setCurrentText(fromAddr); - fnUpdateSproutBalance(turnstile.migrateZaddList->currentText()); - + fnUpdateSproutBalance(turnstile.migrateZaddList->currentText()); // Combo box selection event QObject::connect(turnstile.migrateZaddList, &QComboBox::currentTextChanged, fnUpdateSproutBalance); @@ -344,6 +345,7 @@ void MainWindow::setupSettingsModal() { QDialog settingsDialog(this); Ui_Settings settings; settings.setupUi(&settingsDialog); + Settings::saveRestore(&settingsDialog); // Setup save sent check box QObject::connect(settings.chkSaveTxs, &QCheckBox::stateChanged, [=](auto checked) { @@ -407,7 +409,7 @@ void MainWindow::setupSettingsModal() { auto cl = new ConnectionLoader(this, rpc); cl->loadConnection(); } - }; + } }); } @@ -444,6 +446,7 @@ void MainWindow::postToZBoard() { QDialog d(this); Ui_zboard zb; zb.setupUi(&d); + Settings::saveRestore(&d); if (rpc->getConnection() == nullptr) return; @@ -556,6 +559,7 @@ void MainWindow::importPrivKey() { QDialog d(this); Ui_PrivKey pui; pui.setupUi(&d); + Settings::saveRestore(&d); pui.buttonBox->button(QDialogButtonBox::Save)->setVisible(false); pui.helpLbl->setText(QString() % @@ -588,11 +592,14 @@ void MainWindow::exportAllKeys() { QDialog d(this); Ui_PrivKey pui; pui.setupUi(&d); - + + // Make the window big by default auto ps = this->geometry(); QMargins margin = QMargins() + 50; d.setGeometry(ps.marginsRemoved(margin)); + Settings::saveRestore(&d); + pui.privKeyTxt->setPlainText("Loading..."); pui.privKeyTxt->setReadOnly(true); pui.privKeyTxt->setLineWrapMode(QPlainTextEdit::LineWrapMode::NoWrap); diff --git a/src/settings.cpp b/src/settings.cpp index fa7fa9a..a28033e 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -122,4 +122,13 @@ QString Settings::getZECUSDDisplayFormat(double bal) { return getZECDisplayFormat(bal) % " (" % getUSDFormat(bal) % ")"; else return getZECDisplayFormat(bal); +} + + +void Settings::saveRestore(QDialog* d) { + d->restoreGeometry(QSettings().value(d->objectName() % "geometry").toByteArray()); + + QObject::connect(d, &QDialog::finished, [=](auto) { + QSettings().setValue(d->objectName() % "geometry", d->saveGeometry()); + }); } \ No newline at end of file diff --git a/src/settings.h b/src/settings.h index b771293..2ad1dc6 100644 --- a/src/settings.h +++ b/src/settings.h @@ -16,6 +16,8 @@ public: static Settings* init(); static Settings* getInstance(); + static void saveRestore(QDialog* d); + Config getSettings(); void saveSettings(const QString& host, const QString& port, const QString& username, const QString& password); @@ -42,8 +44,7 @@ public: void setZECPrice(double p) { zecPrice = p; } double getZECPrice(); - - + QString getUSDFormat (double bal); QString getZECDisplayFormat (double bal); QString getZECUSDDisplayFormat(double bal); From dad6c3b636724022fa0bc9a5a91d84db82120080 Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Tue, 6 Nov 2018 08:04:44 -0800 Subject: [PATCH 05/18] #26 Disallow blank memos to zboard --- src/mainwindow.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9765207..e6eb3ee 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -492,6 +492,14 @@ void MainWindow::postToZBoard() { zb.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); zb.memoSize->setStyleSheet("color: red;"); } + + // Disallow blank memos + if (zb.memoTxt->toPlainText().trimmed().isEmpty()) { + zb.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + } + else { + zb.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); + } }; // Memo text changed @@ -499,6 +507,7 @@ void MainWindow::postToZBoard() { QObject::connect(zb.postAs, &QLineEdit::textChanged, fnUpdateMemoSize); zb.memoTxt->setFocus(); + fnUpdateMemoSize(); if (d.exec() == QDialog::Accepted) { // Create a transaction. From 19b8cc643d771b42f4fdf844eb1e3348c3ccde91 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 6 Nov 2018 13:52:46 -0800 Subject: [PATCH 06/18] dbl click on tx table --- src/mainwindow.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e6eb3ee..7e6273e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -729,9 +729,19 @@ void MainWindow::setupBalancesTab() { } void MainWindow::setupTransactionsTab() { + // Double click opens up memo if one exists + QObject::connect(ui->transactionsTable, &QTableView::doubleClicked, [=] (auto index) { + auto txModel = dynamic_cast(ui->transactionsTable->model()); + QString memo = txModel->getMemo(index.row()); + + if (!memo.isEmpty()) { + QMessageBox::information(this, "Memo", memo, QMessageBox::Ok); + } + }); + // Set up context menu on transactions tab ui->transactionsTable->setContextMenuPolicy(Qt::CustomContextMenu); - + // Table right click QObject::connect(ui->transactionsTable, &QTableView::customContextMenuRequested, [=] (QPoint pos) { QModelIndex index = ui->transactionsTable->indexAt(pos); if (index.row() < 0) return; From b60d65ee822c8cb463621c0a826cc19c91f3099e Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 6 Nov 2018 22:35:57 -0800 Subject: [PATCH 07/18] add address/label autocomplete --- src/addressbook.cpp | 124 ++++++++++++++++++++++++++------------------ src/addressbook.h | 13 +++-- src/mainwindow.cpp | 1 + src/mainwindow.h | 7 ++- src/precompiled.h | 1 + src/sendtab.cpp | 28 ++++++++++ src/utils.cpp | 57 ++++++++++---------- 7 files changed, 145 insertions(+), 86 deletions(-) diff --git a/src/addressbook.cpp b/src/addressbook.cpp index 02b0524..873eac2 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -10,83 +10,56 @@ AddressBookModel::AddressBookModel(QTableView *parent) headers << "Label" << "Address"; this->parent = parent; - loadDataFromStorage(); + loadData(); } AddressBookModel::~AddressBookModel() { - if (labels != nullptr) - saveDataToStorage(); - - delete labels; + saveData(); } -void AddressBookModel::saveDataToStorage() { - QFile file(writeableFile()); - file.open(QIODevice::ReadWrite | QIODevice::Truncate); - QDataStream out(&file); // we will serialize the data into the file - out << QString("v1") << *labels; - file.close(); +void AddressBookModel::saveData() { + AddressBook::writeToStorage(labels); // Save column positions QSettings().setValue("addresstablegeometry", parent->horizontalHeader()->saveState()); } -void AddressBookModel::loadDataFromStorage() { - QFile file(writeableFile()); - - delete labels; - labels = new QList>(); - - file.open(QIODevice::ReadOnly); - QDataStream in(&file); // read the data serialized from the file - QString version; - in >> version >> *labels; - - file.close(); +void AddressBookModel::loadData() { + labels = AddressBook::readFromStorage(); parent->horizontalHeader()->restoreState(QSettings().value("addresstablegeometry").toByteArray()); } void AddressBookModel::addNewLabel(QString label, QString addr) { - labels->push_back(QPair(label, addr)); + labels.push_back(QPair(label, addr)); + AddressBook::writeToStorage(labels); - dataChanged(index(0, 0), index(labels->size()-1, columnCount(index(0,0))-1)); + dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1)); layoutChanged(); } void AddressBookModel::removeItemAt(int row) { - if (row >= labels->size()) + if (row >= labels.size()) return; - labels->removeAt(row); - dataChanged(index(0, 0), index(labels->size()-1, columnCount(index(0,0))-1)); + labels.removeAt(row); + AddressBook::writeToStorage(labels); + + + dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1)); layoutChanged(); } QPair AddressBookModel::itemAt(int row) { - if (row >= labels->size()) return QPair(); + if (row >= labels.size()) return QPair(); - return labels->at(row); + return labels.at(row); } -QString AddressBookModel::writeableFile() { - auto filename = QStringLiteral("addresslabels.dat"); - - auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); - if (!dir.exists()) - QDir().mkpath(dir.absolutePath()); - - if (Settings::getInstance()->isTestnet()) { - return dir.filePath("testnet-" % filename); - } else { - return dir.filePath(filename); - } -} int AddressBookModel::rowCount(const QModelIndex&) const { - if (labels == nullptr) return 0; - return labels->size(); + return labels.size(); } int AddressBookModel::columnCount(const QModelIndex&) const { @@ -97,12 +70,12 @@ int AddressBookModel::columnCount(const QModelIndex&) const { QVariant AddressBookModel::data(const QModelIndex &index, int role) const { if (role == Qt::DisplayRole) { switch(index.column()) { - case 0: return labels->at(index.row()).first; - case 1: return labels->at(index.row()).second; + case 0: return labels.at(index.row()).first; + case 1: return labels.at(index.row()).second; } } return QVariant(); -} +} QVariant AddressBookModel::headerData(int section, Qt::Orientation orientation, int role) const { @@ -127,6 +100,9 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) { ab.buttonBox->button(QDialogButtonBox::Ok)->setText("Pick"); } + // Connect the dialog's closing to updating the label address completor + QObject::connect(&d, &QDialog::finished, [=] (auto) { parent->updateLabelsAutoComplete(); }); + // If there is a target then make it the addr for the "Add to" button if (target != nullptr && Utils::isValidAddress(target->text())) { ab.addr->setText(target->text()); @@ -146,13 +122,18 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) { } }); + auto fnSetTargetLabelAddr = [=] (QLineEdit* target, QString label, QString addr) { + target->setText(label % "/" % addr); + }; + // Double-Click picks the item QObject::connect(ab.addresses, &QTableView::doubleClicked, [&] (auto index) { if (index.row() < 0) return; + QString lbl = model.itemAt(index.row()).first; QString addr = model.itemAt(index.row()).second; d.accept(); - target->setText(addr); + fnSetTargetLabelAddr(target, lbl, addr); }); // Right-Click @@ -162,13 +143,15 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) { if (index.row() < 0) return; + QString lbl = model.itemAt(index.row()).first; QString addr = model.itemAt(index.row()).second; QMenu menu(parent); if (target != nullptr) { menu.addAction("Pick", [&] () { - target->setText(addr); + d.accept(); + fnSetTargetLabelAddr(target, lbl, addr); }); } @@ -187,7 +170,46 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) { if (d.exec() == QDialog::Accepted && target != nullptr) { auto selection = ab.addresses->selectionModel(); if (selection->hasSelection()) { - target->setText(model.itemAt(selection->selectedRows().at(0).row()).second); + auto item = model.itemAt(selection->selectedRows().at(0).row()); + fnSetTargetLabelAddr(target, item.first, item.second); } }; +} + +QList> AddressBook::readFromStorage() { + QFile file(AddressBook::writeableFile()); + + QList> labels; + + file.open(QIODevice::ReadOnly); + QDataStream in(&file); // read the data serialized from the file + QString version; + in >> version >> labels; + + file.close(); + + return labels; +} + + +void AddressBook::writeToStorage(QList> labels) { + QFile file(AddressBook::writeableFile()); + file.open(QIODevice::ReadWrite | QIODevice::Truncate); + QDataStream out(&file); // we will serialize the data into the file + out << QString("v1") << labels; + file.close(); +} + +QString AddressBook::writeableFile() { + auto filename = QStringLiteral("addresslabels.dat"); + + auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); + if (!dir.exists()) + QDir().mkpath(dir.absolutePath()); + + if (Settings::getInstance()->isTestnet()) { + return dir.filePath("testnet-" % filename); + } else { + return dir.filePath(filename); + } } \ No newline at end of file diff --git a/src/addressbook.h b/src/addressbook.h index 5fe7666..9aa3f00 100644 --- a/src/addressbook.h +++ b/src/addressbook.h @@ -21,19 +21,22 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role) const; private: - void loadDataFromStorage(); - void saveDataToStorage(); - - QString writeableFile(); + void loadData(); + void saveData(); QTableView* parent; - QList>* labels = nullptr; + QList> labels; QStringList headers; }; class AddressBook { public: static void open(MainWindow* parent, QLineEdit* target = nullptr); + + static QList> readFromStorage(); + static void writeToStorage(QList> labels); + + static QString writeableFile(); }; #endif // ADDRESSBOOK_H \ No newline at end of file diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7e6273e..7ce0ae2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -910,6 +910,7 @@ MainWindow::~MainWindow() { delete ui; delete rpc; + delete labelCompleter; delete loadingMovie; } diff --git a/src/mainwindow.h b/src/mainwindow.h index 4f5005c..a8521ed 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -36,6 +36,8 @@ public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); + void updateLabelsAutoComplete(); + Ui::MainWindow* ui; QLabel* statusLabel; @@ -89,9 +91,10 @@ private: void restoreSavedStates(); - RPC* rpc = nullptr; + RPC* rpc = nullptr; + QCompleter* labelCompleter = nullptr; - QMovie* loadingMovie; + QMovie* loadingMovie; }; #endif // MAINWINDOW_H diff --git a/src/precompiled.h b/src/precompiled.h index 9210ca5..9c8f162 100644 --- a/src/precompiled.h +++ b/src/precompiled.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/src/sendtab.cpp b/src/sendtab.cpp index 146f556..ae4e89e 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -45,6 +45,11 @@ void MainWindow::setupSendTab() { QObject::connect(ui->Address1, &QLineEdit::textChanged, [=] (auto text) { this->addressChanged(1, text); }); + + // This is the damnest thing ever. If we do AddressBook::readFromStorage() directly, the whole file + // doesn't get read. It needs to run in a timer after everything has finished to be able to read + // the file properly. + QTimer::singleShot(100, [=]() { updateLabelsAutoComplete(); }); // The first address book button QObject::connect(ui->AddressBook1, &QPushButton::clicked, [=] () { @@ -87,6 +92,25 @@ void MainWindow::setupSendTab() { }); } +void MainWindow::updateLabelsAutoComplete() { + QList list; + auto labels = AddressBook::readFromStorage(); + + std::transform(labels.begin(), labels.end(), std::back_inserter(list), [=] (auto la) -> QString { + return la.first % "/" % la.second; + }); + + delete labelCompleter; + labelCompleter = new QCompleter(list, this); + labelCompleter->setCaseSensitivity(Qt::CaseInsensitive); + + // Then, find all the address fields and update the completer. + QRegExp re("Address[0-9]+", Qt::CaseInsensitive); + for (auto target: ui->sendToWidgets->findChildren(re)) { + target->setCompleter(labelCompleter); + } +} + void MainWindow::setDefaultPayFrom() { auto findMax = [=] (QString startsWith) { double max_amt = 0; @@ -148,6 +172,7 @@ void MainWindow::addAddressSection() { QObject::connect(Address1, &QLineEdit::textChanged, [=] (auto text) { this->addressChanged(itemNumber, text); }); + Address1->setCompleter(labelCompleter); horizontalLayout_12->addWidget(Address1); @@ -350,6 +375,9 @@ Tx MainWindow::createTxFromSendPage() { int totalItems = ui->sendToWidgets->children().size() - 2; // The last one is a spacer, so ignore that for (int i=0; i < totalItems; i++) { QString addr = ui->sendToWidgets->findChild(QString("Address") % QString::number(i+1))->text().trimmed(); + // Remove label if it exists + addr = addr.split("/").last(); + double amt = ui->sendToWidgets->findChild(QString("Amount") % QString::number(i+1))->text().trimmed().toDouble(); QString memo = ui->sendToWidgets->findChild(QString("MemoTxt") % QString::number(i+1))->text().trimmed(); diff --git a/src/utils.cpp b/src/utils.cpp index bffe3e9..2f66132 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -31,36 +31,37 @@ const QString Utils::getDevSproutAddr() { // Get the dev fee address based on the transaction const QString Utils::getDevAddr(Tx tx) { - auto testnetAddrLookup = [=] (const QString& addr) -> QString { - if (addr.startsWith("ztestsapling")) { - return "ztestsapling1kdp74adyfsmm9838jaupgfyx3npgw8ut63stjjx757pc248cuc0ymzphqeux60c64qe5qt68ygh"; - } else if (addr.startsWith("zt")) { - return getDevSproutAddr(); - } else { - return QString(); - } - }; + return QString(); + // auto testnetAddrLookup = [=] (const QString& addr) -> QString { + // if (addr.startsWith("ztestsapling")) { + // return "ztestsapling1kdp74adyfsmm9838jaupgfyx3npgw8ut63stjjx757pc248cuc0ymzphqeux60c64qe5qt68ygh"; + // } else if (addr.startsWith("zt")) { + // return getDevSproutAddr(); + // } else { + // return QString(); + // } + // }; - if (Settings::getInstance()->isTestnet()) { - auto devAddr = testnetAddrLookup(tx.fromAddr); - if (!devAddr.isEmpty()) { - return devAddr; - } + // if (Settings::getInstance()->isTestnet()) { + // auto devAddr = testnetAddrLookup(tx.fromAddr); + // if (!devAddr.isEmpty()) { + // return devAddr; + // } - // t-Addr, find if it is going to a Sprout or Sapling address - for (const ToFields& to : tx.toAddrs) { - devAddr = testnetAddrLookup(to.addr); - if (!devAddr.isEmpty()) { - return devAddr; - } - } + // // t-Addr, find if it is going to a Sprout or Sapling address + // for (const ToFields& to : tx.toAddrs) { + // devAddr = testnetAddrLookup(to.addr); + // if (!devAddr.isEmpty()) { + // return devAddr; + // } + // } - // If this is a t-Addr -> t-Addr transaction, use the Sapling address by default - return testnetAddrLookup("ztestsapling"); - } else { - // Mainnet doesn't have a fee yet! - return QString(); - } + // // If this is a t-Addr -> t-Addr transaction, use the Sapling address by default + // return testnetAddrLookup("ztestsapling"); + // } else { + // // Mainnet doesn't have a fee yet! + // return QString(); + // } } @@ -82,7 +83,7 @@ QString Utils::getZboardAddr() { } double Utils::getDevFee() { if (Settings::getInstance()->isTestnet()) { - return 0.0001; + return 0; } else { return 0; } From 8dec650c651e9e16966afe10566edbfeda336268 Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 10:22:40 -0800 Subject: [PATCH 08/18] Add support for zboard topics --- src/mainwindow.cpp | 16 ++++++++++++-- src/rpc.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++++ src/rpc.h | 2 ++ src/zboard.ui | 12 ++++++++++- 4 files changed, 81 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7ce0ae2..b8f7cce 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -458,6 +458,18 @@ void MainWindow::postToZBoard() { } } + QMap topics; + // Insert the main topic automatically + topics.insert("#Main_Area", Utils::getZboardAddr()); + zb.topicsList->addItem(topics.firstKey()); + // Then call the API to get topics, and if it returns successfully, then add the rest of the topics + rpc->getZboardTopics([&](QMap topicsMap) { + for (auto t : topicsMap.keys()) { + topics.insert(t, topicsMap[t]); + zb.topicsList->addItem(t); + } + }); + // Testnet warning if (Settings::getInstance()->isTestnet()) { zb.testnetWarning->setText("You are on testnet, your post won't actually appear on z-board.net"); @@ -524,7 +536,8 @@ void MainWindow::postToZBoard() { if (!zb.postAs->text().trimmed().isEmpty()) memo = zb.postAs->text().trimmed() + ":: " + memo; - tx.toAddrs.push_back(ToFields{ Utils::getZboardAddr(), Utils::getZboardAmount(), memo, memo.toUtf8().toHex() }); + auto toAddr = topics[zb.topicsList->currentText()]; + tx.toAddrs.push_back(ToFields{ toAddr, Utils::getZboardAmount(), memo, memo.toUtf8().toHex() }); tx.fee = Utils::getMinerFee(); json params = json::array(); @@ -543,7 +556,6 @@ void MainWindow::postToZBoard() { } void MainWindow::doImport(QList* keys) { - qDebug() << keys->size(); if (keys->isEmpty()) { delete keys; ui->statusBar->showMessage("Private key import rescan finished"); diff --git a/src/rpc.cpp b/src/rpc.cpp index e739c80..552eee6 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -807,3 +807,57 @@ void RPC::refreshZECPrice() { Settings::getInstance()->setZECPrice(0); }); } + +// Fetch the Z-board topics list +void RPC::getZboardTopics(std::function)> cb) { + if (conn == nullptr) + return noConnection(); + + QUrl cmcURL("http://z-board.net/listTopics"); + + QNetworkRequest req; + req.setUrl(cmcURL); + + QNetworkReply *reply = conn->restclient->get(req); + + QObject::connect(reply, &QNetworkReply::finished, [=] { + reply->deleteLater(); + + try { + if (reply->error() != QNetworkReply::NoError) { + auto parsed = json::parse(reply->readAll(), nullptr, false); + if (!parsed.is_discarded() && !parsed["error"]["message"].is_null()) { + qDebug() << QString::fromStdString(parsed["error"]["message"]); + } + else { + qDebug() << reply->errorString(); + } + return; + } + + auto all = reply->readAll(); + + auto parsed = json::parse(all, nullptr, false); + if (parsed.is_discarded()) { + return; + } + + QMap topics; + for (const json& item : parsed["topics"].get()) { + if (item.find("addr") == item.end() || item.find("topicName") == item.end()) + return; + + QString addr = QString::fromStdString(item["addr"].get()); + QString topic = QString::fromStdString(item["topicName"].get()); + + topics.insert(topic, addr); + } + + cb(topics); + } + catch (...) { + // If anything at all goes wrong, just set the price to 0 and move on. + qDebug() << QString("Caught something nasty"); + } + }); +} diff --git a/src/rpc.h b/src/rpc.h index 6ec7df7..6ce2fc8 100644 --- a/src/rpc.h +++ b/src/rpc.h @@ -36,7 +36,9 @@ public: void refresh(bool force = false); void refreshAddresses(); + void refreshZECPrice(); + void getZboardTopics(std::function)> cb); void fillTxJsonParams(json& params, Tx tx); void sendZTransaction (json params, const std::function& cb); diff --git a/src/zboard.ui b/src/zboard.ui index 7b8e466..8a16047 100644 --- a/src/zboard.ui +++ b/src/zboard.ui @@ -82,7 +82,7 @@ - <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><p>Posting to ZBoard: #Main_Area</p></body></html> + <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> true @@ -115,6 +115,16 @@ + + + + + + + Posting to Board + + + From 0a33abf9ef4557c628e4e217c3d1d595c25a1083 Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 10:26:05 -0800 Subject: [PATCH 09/18] remove pngs --- application.qrc | 2 +- res/connected.gif | Bin 0 -> 2534 bytes res/connected.png | Bin 9498 -> 0 bytes src/rpc.cpp | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 res/connected.gif delete mode 100644 res/connected.png diff --git a/application.qrc b/application.qrc index 1b2fcc7..faab39d 100644 --- a/application.qrc +++ b/application.qrc @@ -3,7 +3,7 @@ res/Ubuntu-R.ttf - res/connected.png + res/connected.gif res/loading.gif res/icon.ico diff --git a/res/connected.gif b/res/connected.gif new file mode 100644 index 0000000000000000000000000000000000000000..a515ed496720d4653830ace35a8dd2da2b919692 GIT binary patch literal 2534 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 diff --git a/src/rpc.cpp b/src/rpc.cpp index 552eee6..9dac2c7 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -454,7 +454,7 @@ void RPC::getInfoThenRefresh(bool force) { }; // Connected, so display checkmark. - QIcon i(":/icons/res/connected.png"); + QIcon i(":/icons/res/connected.gif"); main->statusIcon->setPixmap(i.pixmap(16, 16)); static int lastBlock = 0; From 1a173e392849f3d4619cb010993cbce7e85f765e Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 10:40:35 -0800 Subject: [PATCH 10/18] cleanup --- src/utils.cpp | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 2f66132..7f638fb 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -30,38 +30,8 @@ const QString Utils::getDevSproutAddr() { } // Get the dev fee address based on the transaction -const QString Utils::getDevAddr(Tx tx) { +const QString Utils::getDevAddr(Tx) { return QString(); - // auto testnetAddrLookup = [=] (const QString& addr) -> QString { - // if (addr.startsWith("ztestsapling")) { - // return "ztestsapling1kdp74adyfsmm9838jaupgfyx3npgw8ut63stjjx757pc248cuc0ymzphqeux60c64qe5qt68ygh"; - // } else if (addr.startsWith("zt")) { - // return getDevSproutAddr(); - // } else { - // return QString(); - // } - // }; - - // if (Settings::getInstance()->isTestnet()) { - // auto devAddr = testnetAddrLookup(tx.fromAddr); - // if (!devAddr.isEmpty()) { - // return devAddr; - // } - - // // t-Addr, find if it is going to a Sprout or Sapling address - // for (const ToFields& to : tx.toAddrs) { - // devAddr = testnetAddrLookup(to.addr); - // if (!devAddr.isEmpty()) { - // return devAddr; - // } - // } - - // // If this is a t-Addr -> t-Addr transaction, use the Sapling address by default - // return testnetAddrLookup("ztestsapling"); - // } else { - // // Mainnet doesn't have a fee yet! - // return QString(); - // } } From 0a2b45f42aca16df8fb9d028e0d86eafceaeb77b Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 10:50:14 -0800 Subject: [PATCH 11/18] strip binaries for fize --- src/scripts/mkrelease.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/scripts/mkrelease.sh b/src/scripts/mkrelease.sh index 5b4d291..ff234a3 100755 --- a/src/scripts/mkrelease.sh +++ b/src/scripts/mkrelease.sh @@ -20,6 +20,7 @@ echo "[OK]" echo -n "Cleaning......" rm -f bin/linux-zec-qt-wallet* rm -rf release/ +rm -rf artifacts/* make distclean > /dev/null echo "[OK]" @@ -47,6 +48,7 @@ echo "[OK]" echo -n "Packaging....." +strip zec-qt-wallet mkdir bin/zec-qt-wallet-v$APP_VERSION > /dev/null cp zec-qt-wallet bin/zec-qt-wallet-v$APP_VERSION > /dev/null cp README.md bin/zec-qt-wallet-v$APP_VERSION > /dev/null From c0d734b8ac0c58c00b7817299091cb86cbe66e6f Mon Sep 17 00:00:00 2001 From: Aditya Date: Wed, 7 Nov 2018 11:05:51 -0800 Subject: [PATCH 12/18] v0.2.9 --- README.md | 4 ++-- zec-qt-wallet.pro | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fe6a942..e8559b9 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Head over to the releases page and grab the latest binary. https://github.com/ad ### Linux Extract and run the binary ``` -tar -xvf zec-qt-wallet-v0.2.8.tar.gz -./zec-qt-wallet-v0.2.8/zec-qt-wallet +tar -xvf zec-qt-wallet-v0.2.9.tar.gz +./zec-qt-wallet-v0.2.9/zec-qt-wallet ``` ### Windows diff --git a/zec-qt-wallet.pro b/zec-qt-wallet.pro index b95ee68..2ab0e3a 100644 --- a/zec-qt-wallet.pro +++ b/zec-qt-wallet.pro @@ -13,7 +13,7 @@ PRECOMPILED_HEADER = src/precompiled.h greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = zec-qt-wallet -APP_VERSION=\\\"0.2.8\\\" +APP_VERSION=\\\"0.2.9\\\" TEMPLATE = app From 283ecea16335c49423efe8493fa3cfc5ffecd7f3 Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 12:49:03 -0800 Subject: [PATCH 13/18] Fix error dialog when there's no zcash.conf --- src/connection.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/connection.cpp b/src/connection.cpp index 7eed231..57dfa2a 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -93,8 +93,6 @@ void ConnectionLoader::refreshZcashdState(Connection* connection) { this->doRPCSetConnection(connection); }, [=] (auto reply, auto res) { - d->show(); - auto err = reply->error(); // Failed, see what it is. //qDebug() << err << ":" << QString::fromStdString(res.dump()); @@ -115,6 +113,8 @@ void ConnectionLoader::refreshZcashdState(Connection* connection) { this->showError(explanation); } else if (err == QNetworkReply::NetworkError::InternalServerError && !res.is_discarded()) { + d->show(); + // The server is loading, so just poll until it succeeds QString status = QString::fromStdString(res["error"]["message"]); @@ -130,11 +130,7 @@ void ConnectionLoader::refreshZcashdState(Connection* connection) { } void ConnectionLoader::showError(QString explanation) { - QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical); - connD->icon->setPixmap(icon.pixmap(128, 128)); - connD->status->setText(explanation); - - connD->buttonBox->setEnabled(true); + QMessageBox::critical(main, "Connection Error", explanation, QMessageBox::Ok); } From 1020fcb1f6023948f697b34f3bfcdba9e60f8b4d Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 12:50:07 -0800 Subject: [PATCH 14/18] fix last push --- src/connection.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connection.cpp b/src/connection.cpp index 57dfa2a..3919584 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -38,7 +38,6 @@ void ConnectionLoader::loadConnection() { config = loadFromSettings(); if (config.get() == nullptr) { - d->show(); // Nothing configured, show an error QString explanation = QString() % "A zcash.conf was not found on this machine.\n\n" From 71290dc386aca95bd2007075ce7b01ea65341c6e Mon Sep 17 00:00:00 2001 From: adityapk Date: Wed, 7 Nov 2018 12:52:33 -0800 Subject: [PATCH 15/18] update readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e8559b9..642cd86 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ zec-qt-wallet is written in C++ 14, and can be compiled with g++/clang++/visual ### Compiling on Linux ``` +sudo apt install libgl1-mesa-dev + git clone https://github.com/adityapk00/zec-qt-wallet.git cd zec-qt-wallet /path/to/qt5/bin/qmake zec-qt-wallet.pro CONFIG+=debug From 038fd79ae215f329d15aea8f5b95b3cfe88b1ef3 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Wed, 7 Nov 2018 21:55:10 -0800 Subject: [PATCH 16/18] Update screenshot --- docs/screenshot-main.png | Bin 65149 -> 73608 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/screenshot-main.png b/docs/screenshot-main.png index 062037de07a2610ba01c9324d36e62b4781d5647..f7f37b6ffc235664cf719d07487c76093019d6af 100644 GIT binary patch literal 73608 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 literal 65149 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

Kw# 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 LzA2S{_wio<9e(ib From 65b474758c72fbf28ead99f0bbccead84bdbc18b Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Wed, 7 Nov 2018 21:56:32 -0800 Subject: [PATCH 17/18] update screenshot --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 642cd86..9e1e3d2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ zec-qt-wallet is a z-Addr first, Sapling compatible wallet for zcashd that runs on Windows and Linux - ![Screenshot](docs/screenshot-main.png?raw=true) # Installation From 7b842c0ec76717a76e43677778e27ebe5b509a3c Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Wed, 7 Nov 2018 21:58:15 -0800 Subject: [PATCH 18/18] settings menu --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9e1e3d2..bacc211 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ zec-qt-wallet is a z-Addr first, Sapling compatible wallet for zcashd that runs on Windows and Linux + ![Screenshot](docs/screenshot-main.png?raw=true) # Installation @@ -23,7 +24,7 @@ There is currently no official zcashd build for Windows so Windows users may eit Alternatively run zcashd inside [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10). -For all installations zcashd needs to run with RPC enabled (`server=1`, which is the default) and with a RPC username/password set. Add the following entries into `~/.zcash/zcash.conf` for Linux or` C:\Users\your-username\AppData\Roaming\Zcash\zcash.conf` on Windows replacing the default values with a strong password. zec-qt-wallet should detect these settings but if that fails you may edit the connection settings manually via the `File->Settings` menu. +For all installations zcashd needs to run with RPC enabled (`server=1`, which is the default) and with a RPC username/password set. Add the following entries into `~/.zcash/zcash.conf` for Linux or` C:\Users\your-username\AppData\Roaming\Zcash\zcash.conf` on Windows replacing the default values with a strong password. zec-qt-wallet should detect these settings but if that fails you may edit the connection settings manually via the `Edit->Settings` menu. ``` rpcuser=username @@ -40,7 +41,7 @@ https://z.cash/downloads/sprout-proving.key https://z.cash/downloads/sprout-verifying.key ``` -If you are running zcashd on WSL, then please set the connection parameters in the `File->Settings` menu. +If you are running zcashd on WSL, then please set the connection parameters in the `Edit->Settings` menu. ## Compiling from source zec-qt-wallet 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