(v&^mat9cEGGtSBr684%&jasg^i5fy{}$+3^XAq($LRx*rdcI#fP+I| zv_RSGKJV^spWDB8n)CYsWE*m!LbA=l00006VoOIv0RI600RN!9r;`8x010qNS#tmY z4c7nw4c7reD4Tcy000McNlirunu~K~z}7<(WBXRY4Snzj=Aa z9YIBH+z>=@LlF_J#L~j85R8Rj w7Qgsm|R0&YAzroH=vmUML{yT=l;CT5X|`qF(T~yjPow*em4>7S!G9 zS#?b>uZ)lMk-&(g|2XxidR(1a)bp0e^B?Mr1ixud8I|DYBJ5V7nE~cSdJ{0WN`Dqc z`ux0Q%p((W+SNE4^7@z6A;3D|GteGF=&s`iXad#(Lx3}7;54u@!w&&FtFZS5Xazn2 zoBF}04cMOPt5Cm1LH00VzCQ`jbqPKp(nqU<6Z~b;zntKYBkXG#7!={n)wmTx=!*2W z{g{~^W0x2}QYsjL!_-#wpgN@}nR3DY`=S6`4$NuT%m9lbeYQHXkz`6a?QfC(9q6tl znLN1|=^c3qwOnH|yMP (12``a{RB?cD`xHwm^=e)1+LeN%;%*2DOrXuz-r)G zA4zendO$t)M@ca`$et(I4E1e>-BXA6VPl$lL@g!H+bdOi>Wg^rie$15W7MTt-Bayx z@iemComP4&nerd(h&RC1zYqqwmEJ#fYVTE-)P;;XR6U_SQ1|rm%4* Q-Sj}z1~(SOR_7+fFRTGvuQw)`H)m~ zUmHp0a8z2hg%Ex;>~;`BXjdlzBSHv|8+}zFgzyS@^|xZ?QPh4|=a`Mh?koW =LR(*LR@>BT>b73+yUD3MI>D!_9qJWzajn0}RV4FYpG{qn{t 50004mX+uL$Nkc;* zaB^>EX>4Tx04R}tkv&MmKpe$iQ?()$2P=ql$WWauh>AFB6^c+H)C#RSm|XfHG-*gu zTpR`0f`cE6RR L;k>@Q#C4icB(Z=+ND!f*iVc)uBTlPMiiI@oCw%-vu3sXTLaq%k za?GOw4YKP8|AXJ%T7`*mFDaY=I$s>;V;BhS0*#vEd>=bb;{*sk16O*>U#SDrpQP7X zTI>ku+XgPKTbi;5T00006VoOIv0RI600RN!9r;`8x010qNS#tmY z4c7nw4c7reD4Tcy000McNliru JMC T% zB$!J`^0Qg+?PG7(y}jKy)jVe2oA3SmX5N!>2rvSC09wFB6)nJ4U o)AriG zy_r7>5AmlCSHA|F1 0&FaVtK%LL%QGxocfejnZ7iC}tA z3(cmag9w uUtaX)z$1_szCsUhjJq?bU=b2%jG7I2}Am8nbW5A{8g zhC38smw;<|>)bRjeHlpdw4_b{b8adX%#x$8NLpU&dgi;N1xe#(wwPzIT#3@mrX)=P zW@hwan|?a&R+pf<1rmuJgb%H0Np~cj%1HOS9epQ|^)`)$ai_fpUu>|6l&8uo;05p) zSnx?PEjML7Gjm=$u67yx$Nuw@R`X=t8gLzW7UrQKW@TLQS7r!!0L%bKi~cT21XDK8 pxV*CJkzlz390`A}n!WhB`U7D3TiKFwpd$bP002ovPDHLkV1iC8^b!C7 literal 0 HcmV?d00001 diff --git a/src/Model/ChatItem.cpp b/src/Model/ChatItem.cpp index 3a190f0a..34d19928 100644 --- a/src/Model/ChatItem.cpp +++ b/src/Model/ChatItem.cpp @@ -158,6 +158,8 @@ QString ChatItem::toChatLine() { QDateTime myDateTime; QString lock; + QString money; + QString moneyText; myDateTime.setTime_t(_timestamp); if (_notarize == true) @@ -176,10 +178,42 @@ QString ChatItem::toChatLine() lock = " "; } + + if (_memo.startsWith("Money transaction of :")) + { + if (_outgoing == true) + { + + moneyText = QString(" Outgoing Money Transaction
") + QString(" "); + }else{ + + + moneyText = QString("Incoming Money Transaction
") + QString(" "); + + } + }else{money = ""; + moneyText = ""; } + + if (_memo.startsWith("Request of :")) + { + if (_outgoing == true) + { + + moneyText = QString("Outgoing Hush Request
") + QString(" "); + }else{ + + + moneyText = QString("Incoming Hush Request
") + QString(" "); + + } + }else{money = ""; + moneyText = ""; } + + QString line = QString("") + myDateTime.toString("yyyy-MM-dd hh:mm"); - line += QString(lock) + QString(""); + line += QString(lock) + QString(moneyText) + QString(""); line +=QString("") + _memo.toHtmlEscaped() + QString("
"); return line; } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a2dda35e..d5e979df 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1488,9 +1488,8 @@ void MainWindow::setupchatTab() { QAction* requestHushAction; QAction* subatomicAction; contextMenu = new QMenu(ui->listContactWidget); - HushAction = new QAction("Send this contact Hush ",contextMenu); + HushAction = new QAction("Send or Request Hush ",contextMenu); editAction = new QAction("Delete this contact",contextMenu); - requestAction = new QAction("Send a contact request - coming soon",contextMenu); subatomicAction = new QAction("Make a subatomic swap with a friend- coming soon",contextMenu); @@ -1500,8 +1499,7 @@ void MainWindow::setupchatTab() { ui->listContactWidget->setContextMenuPolicy(Qt::ActionsContextMenu); ui->listContactWidget->addAction(HushAction); - ui->listContactWidget->addAction(editAction); - ui->listContactWidget->addAction(requestAction); + ui->listContactWidget->addAction(editAction); ui->listContactWidget->addAction(subatomicAction); ui->memoTxtChat->setEnabled(true); @@ -1525,9 +1523,12 @@ void MainWindow::setupchatTab() { QDialog transactionDialog(this); transaction.setupUi(&transactionDialog); Settings::saveRestore(&transactionDialog); - transaction.requestHush->setEnabled(false); - transaction.requestHush->setVisible(false); + // transaction.requestHush->setEnabled(false); + // transaction.requestHush->setVisible(false); transaction.amountChat->setValidator(this->getAmountValidator()); + QString icon = ":icons/res/hush-money-white.png"; + QPixmap hush(icon); + transaction.label_3->setPixmap(hush); @@ -1559,6 +1560,19 @@ void MainWindow::setupchatTab() { QObject::connect(transaction.sendHush, &QPushButton::clicked, this , &MainWindow::sendMoneyChat); + + + QObject::connect(transaction.requestHush, &QPushButton::clicked, [&] (){ + + QString amt = transaction.amountChat->text(); + QString memo = transaction.MemoMoney->text(); + this->setAmt(amt); + this->setMoneyMemo(memo); + transactionDialog.close(); + }); + + QObject::connect(transaction.requestHush, &QPushButton::clicked, this , &MainWindow::sendMoneyRequestChat); + transactionDialog.exec(); @@ -1869,6 +1883,284 @@ QString MainWindow::doSendChatMoneyTxValidations(Tx tx) { return ""; } +// Create a Tx from the current state of the Chat page. +Tx MainWindow::createTxFromSendRequestChatPage() { + Tx tx; + CAmount totalAmt; + // For each addr/amt in the Chat tab + { + + QString amtStr = this->getAmt(); + CAmount amt; + CAmount amtHm; + + amt = CAmount::fromDecimalString("0"); + amtHm = CAmount::fromDecimalString("0"); + totalAmt = totalAmt + amt; + + QModelIndex index = ui->listContactWidget->currentIndex(); + QString label_contact = index.data(Qt::DisplayRole).toString(); + + for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) + + if (label_contact == c.getName()) { + + QString cid = c.getCid(); + QString myAddr = c.getMyAddress(); + QString type = "Money"; + QString addr = c.getPartnerAddress(); + QString moneymemo = this->getMoneyMemo(); + + /////////User input for chatmemos + QString memoplain = QString("Request of : ") + amtStr + QString(" HUSH ") + QString("\n") + QString("\n") + moneymemo; + + /////////We convert the user input from QString to unsigned char*, so we can encrypt it later + int lengthmemo = memoplain.length(); + + char *memoplainchar = NULL; + memoplainchar = new char[lengthmemo+2]; + strncpy(memoplainchar, memoplain.toUtf8(), lengthmemo +1); + + QString pubkey = this->getPubkeyByAddress(addr); + QString passphraseHash = DataStore::getChatDataStore()->getPassword(); + int length = passphraseHash.length(); + + ////////////////Generate the secretkey for our message encryption + + char *hashEncryptionKeyraw = NULL; + hashEncryptionKeyraw = new char[length+1]; + strncpy(hashEncryptionKeyraw, passphraseHash.toUtf8(), length+1); + + #define MESSAGEAS1 ((const unsigned char *) hashEncryptionKeyraw) + #define MESSAGEAS1_LEN length + + + unsigned char sk[crypto_kx_SECRETKEYBYTES]; + unsigned char pk[crypto_kx_PUBLICKEYBYTES]; + unsigned char server_rx[crypto_kx_SESSIONKEYBYTES], server_tx[crypto_kx_SESSIONKEYBYTES]; + + if (crypto_kx_seed_keypair(pk,sk, + MESSAGEAS1) !=0) { + + this->logger->write("Suspicious keypair, bail out "); + } + ////////////////Get the pubkey from Bob, so we can create the share key + + const QByteArray pubkeyBobArray = QByteArray::fromHex(pubkey.toLatin1()); + const unsigned char *pubkeyBob = reinterpret_cast(pubkeyBobArray.constData()); + /////Create the shared key for sending the message + + if (crypto_kx_server_session_keys(server_rx, server_tx, + pk, sk, pubkeyBob) != 0) { + this->logger->write("Suspicious client public send key, bail out "); + } + + + // Let's try to preserve Unicode characters + QByteArray ba_memo = memoplain.toUtf8(); + int ba_memo_length = ba_memo.size(); + + #define MESSAGEMoney (const unsigned char *) ba_memo.data() + #define MESSAGE_LENMoney ba_memo_length + + + ////////////Now lets encrypt the message Alice send to Bob////////////////////////////// + //#define MESSAGE (const unsigned char *) memoplainchar + //#define MESSAGE_LEN lengthmemo + #define CIPHERTEXT_LEN (crypto_secretstream_xchacha20poly1305_ABYTES + MESSAGE_LENMoney) + unsigned char ciphertext[CIPHERTEXT_LEN]; + unsigned char header[crypto_secretstream_xchacha20poly1305_HEADERBYTES]; + + crypto_secretstream_xchacha20poly1305_state state; + + /* Set up a new stream: initialize the state and create the header */ + crypto_secretstream_xchacha20poly1305_init_push(&state, header, server_tx); + + + /* Now, encrypt the first chunk. `c1` will contain an encrypted, + * authenticated representation of `MESSAGE_PART1`. */ + crypto_secretstream_xchacha20poly1305_push + (&state, ciphertext, NULL, MESSAGEMoney, MESSAGE_LENMoney, NULL, 0, crypto_secretstream_xchacha20poly1305_TAG_FINAL); + + ////Create the HM for this message + QString headerbytes = QByteArray(reinterpret_cast (header), crypto_secretstream_xchacha20poly1305_HEADERBYTES).toHex(); + QString publickeyAlice = QByteArray(reinterpret_cast (pk), crypto_kx_PUBLICKEYBYTES).toHex(); + + + QString hmemo= createHeaderMemo(type,cid,myAddr,headerbytes,publickeyAlice,1,0); + + /////Ciphertext Memo + QString memo = QByteArray(reinterpret_cast (ciphertext), CIPHERTEXT_LEN).toHex(); + + + tx.toAddrs.push_back(ToFields{addr, amtHm, hmemo}); + tx.toAddrs.push_back(ToFields{addr, amt, memo}); + + } + } + + tx.fee = Settings::getMinerFee(); + + return tx; + +} + +void MainWindow::sendMoneyRequestChat() { + +////////////////////////////Todo: Check if a Contact is selected////////// + + // Create a Tx from the values on the send tab. Note that this Tx object + // might not be valid yet. + + /* QString Name = ui->contactNameMemo->text(); + + if ((ui->contactNameMemo->text().isEmpty()) || (ui->memoTxtChat->toPlainText().trimmed().isEmpty())) { + + QMessageBox msg(QMessageBox::Critical, tr("You have to select a contact and insert a Memo"), + tr("You have selected no Contact from Contactlist,\n") + tr("\nor your Memo is empty"), + QMessageBox::Ok, this); + + msg.exec(); + return; + }*/ + + + Tx tx = createTxFromSendRequestChatPage(); + + QString error = doSendChatMoneyRequestTxValidations(tx); + + if (!error.isEmpty()) { + // Something went wrong, so show an error and exit + QMessageBox msg(QMessageBox::Critical, tr("Message Error"), error, + QMessageBox::Ok, this); + + msg.exec(); + + // abort the Tx + return; + } + + auto movie = new QMovie(this); + auto movie1 = new QMovie(this); + movie->setFileName(":/img/res/loaderblack.gif"); + movie1->setFileName(":/img/res/loaderwhite.gif"); + + auto theme = Settings::getInstance()->get_theme_name(); + if (theme == "Dark" || theme == "Midnight") { + + connect(movie, &QMovie::frameChanged, [=]{ + ui->sendChatButton->setIcon(movie->currentPixmap()); + }); + movie->start(); + ui->sendChatButton->show(); + ui->sendChatButton->setEnabled(false); + + } else { + + connect(movie1, &QMovie::frameChanged, [=]{ + ui->sendChatButton->setIcon(movie1->currentPixmap()); + }); + movie1->start(); + ui->sendChatButton->show(); + ui->sendChatButton->setEnabled(false); + } + + ui->memoTxtChat->clear(); + + // And send the Tx + rpc->executeTransaction(tx, + [=] (QString txid) { + ui->statusBar->showMessage(Settings::txidStatusMessage + " " + txid); + + + QTimer::singleShot(1000, [=]() { + + if (theme == "Dark" || theme == "Midnight") { + QPixmap send(":/icons/res/send-white.png"); + QIcon sendIcon(send); + ui->sendChatButton->setIcon(sendIcon); + movie->stop(); + ui->sendChatButton->setEnabled(true); + }else{ + + QPixmap send(":/icons/res/sendBlack.png"); + QIcon sendIcon(send); + ui->sendChatButton->setIcon(sendIcon); + movie1->stop(); + ui->sendChatButton->setEnabled(true); + } + + }); + + // Force a UI update so we get the unconfirmed Tx + rpc->refresh(true); + ui->memoTxtChat->clear(); + + }, + // Errored out + [=] (QString opid, QString errStr) { + ui->statusBar->showMessage(QObject::tr(" Tx ") % opid % QObject::tr(" failed"), 15 * 1000); + + if (!opid.isEmpty()) + errStr = QObject::tr("The transaction with id ") % opid % QObject::tr(" failed. The error was") + ":\n\n" + errStr; + + QMessageBox::critical(this, QObject::tr("Transaction Error"), errStr, QMessageBox::Ok); + movie->stop(); + + + if (theme == "Dark" || theme == "Midnight") { + QPixmap send(":/icons/res/send-white.png"); + QIcon sendIcon(send); + ui->sendChatButton->setIcon(sendIcon); + movie->stop(); + ui->sendChatButton->setEnabled(true); + }else{ + + QPixmap send(":/icons/res/sendBlack.png"); + QIcon sendIcon(send); + ui->sendChatButton->setIcon(sendIcon); + movie1->stop(); + ui->sendChatButton->setEnabled(true); + } + + + + } + ); + + } + +QString MainWindow::doSendChatMoneyRequestTxValidations(Tx tx) { + // Check to see if we have enough verified funds to send the Tx. + + CAmount total; + for (auto toAddr : tx.toAddrs) { + if (!Settings::isValidAddress(toAddr.addr)) { + QString addr = (toAddr.addr.length() > 100 ? toAddr.addr.left(100) + "..." : toAddr.addr); + return QString(tr("Recipient Address ")) % addr % tr(" is Invalid"); + } + + // This technically shouldn't be possible, but issue #62 seems to have discovered a bug + // somewhere, so just add a check to make sure. + if (toAddr.amount.toqint64() < 0) { + return QString(tr("Amount for address '%1' is invalid!").arg(toAddr.addr)); + } + + total = total + toAddr.amount; + } + total = total + tx.fee; + + auto available = rpc->getModel()->getAvailableBalance(); + + if (available < total) { + return tr("Not enough available funds to send this transaction\n\nHave: %1\nNeed: %2\n\nNote: Funds need 1 confirmations before they can be spent") + .arg(available.toDecimalhushString(), total.toDecimalhushString()); + } + + return ""; +} + + void MainWindow::updateChat() { rpc->refreshChat(ui->listChat,ui->memoSizeChat); diff --git a/src/mainwindow.h b/src/mainwindow.h index 3867de61..ca4d8cc4 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -51,6 +51,7 @@ class MainWindow : public QMainWindow QString doSendChatTxValidations(Tx tx); QString doSendChatMoneyTxValidations(Tx tx); QString doSendRequestTxValidations(Tx tx); + QString doSendChatMoneyRequestTxValidations(Tx tx); QString getCid(); QString getAmt(); QString getMoneyMemo(); @@ -143,6 +144,7 @@ private slots: Tx createTxFromChatPage(); Tx createTxForSafeContactRequest(); Tx createTxFromSendChatPage(); + Tx createTxFromSendRequestChatPage(); void encryptWallet(); void removeWalletEncryption(); @@ -152,6 +154,7 @@ private slots: void sendButton(); void sendChat(); void sendMoneyChat(); + void sendMoneyRequestChat(); void addContact(); void ContactRequest(); From 515d47df9d8958ed964b377a3a513cfe9d3613f1 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 21 Jun 2020 08:49:45 +0200 Subject: [PATCH 16/37] show chatitems only one time #142 --- src/Model/ChatItem.cpp | 15 ++++++++------- src/controller.cpp | 2 +- src/mainwindow.cpp | 4 +++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Model/ChatItem.cpp b/src/Model/ChatItem.cpp index 34d19928..349be685 100644 --- a/src/Model/ChatItem.cpp +++ b/src/Model/ChatItem.cpp @@ -160,6 +160,7 @@ QString ChatItem::toChatLine() QString lock; QString money; QString moneyText; + QString moneyTextRequest; myDateTime.setTime_t(_timestamp); if (_notarize == true) @@ -177,7 +178,7 @@ QString ChatItem::toChatLine() { lock = " "; - } + }else{} if (_memo.startsWith("Money transaction of :")) { @@ -192,28 +193,28 @@ QString ChatItem::toChatLine() } }else{money = ""; - moneyText = ""; } + moneyText = ""; } if (_memo.startsWith("Request of :")) { if (_outgoing == true) { - moneyText = QString(" Outgoing Hush Request
") + QString(" "); + moneyTextRequest = QString("Outgoing Hush Request
") + QString(" "); }else{ - moneyText = QString("Incoming Hush Request
") + QString(" "); + moneyTextRequest = QString("Incoming Hush Request
") + QString(" "); } - }else{money = ""; - moneyText = ""; } + }else{moneyTextRequest = ""; + moneyTextRequest = ""; } QString line = QString("") + myDateTime.toString("yyyy-MM-dd hh:mm"); - line += QString(lock) + QString(moneyText) + QString(""); + line += QString(lock) + QString(moneyText) + QString(moneyTextRequest) + QString(""); line +=QString("") + _memo.toHtmlEscaped() + QString("
"); return line; } diff --git a/src/controller.cpp b/src/controller.cpp index 2fe7221b..b777da28 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -990,7 +990,7 @@ void Controller::refreshTransactions() { chatModel->addconfirmations(txid, confirmations); } - if ((confirmations == 1) && (chatModel->getConfirmationByTx(txid) != QString("0xdeadbeef"))) { + if ((confirmations > 0) && (chatModel->getConfirmationByTx(txid) != QString("0xdeadbeef"))) { DataStore::getChatDataStore()->clear(); chatModel->killConfirmationCache(); chatModel->killMemoCache(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d5e979df..397baf1b 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1386,6 +1386,8 @@ void MainWindow::setupchatTab() { ui->listChat->addAction(viewexplorer); ui->listChat->addAction(copytxid); + }); + QObject::connect(copymessage, &QAction::triggered, [=] { @@ -1478,7 +1480,7 @@ void MainWindow::setupchatTab() { } }); -}); + ///////// Add contextmenu QMenu* contextMenu; From c8ab4e400fb1017deebf21c5509ebe9c2e13fa3a Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 21 Jun 2020 09:35:53 +0200 Subject: [PATCH 17/37] Disable passphrase field, activate if TOS is accept #169 --- src/firsttimewizard.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/firsttimewizard.cpp b/src/firsttimewizard.cpp index 20e7d466..4017ed60 100644 --- a/src/firsttimewizard.cpp +++ b/src/firsttimewizard.cpp @@ -65,12 +65,23 @@ NewOrRestorePage::NewOrRestorePage(FirstTimeWizard *parent) : QWizardPage(parent parent->button(QWizard::CommitButton)->setEnabled(false); setButtonText(QWizard::CommitButton, "Next"); + form.txtPassword->setEnabled(false); + form.txtConfirmPassword->setEnabled(false); + + QObject::connect(form.TOS, &QRadioButton::clicked, [=](bool checked) { + if (checked) { + + form.txtPassword->setEnabled(true); + form.txtConfirmPassword->setEnabled(true); + + } + }); auto fnPasswordEdited = [=](const QString&) { // Enable the Finish button if the passwords match. QString passphraseBlank = form.txtPassword->text(); - + QString passphrase = QString("HUSH3") + passphraseBlank + QString("SDL"); @@ -83,6 +94,7 @@ NewOrRestorePage::NewOrRestorePage(FirstTimeWizard *parent) : QWizardPage(parent form.radioRestoreWallet->setEnabled(true); form.radioNewWallet->setEnabled(true); form.radioNewWallet->setChecked(true); + parent->button(QWizard::CommitButton)->setEnabled(true); int length = passphrase.length(); @@ -134,12 +146,7 @@ NewOrRestorePage::NewOrRestorePage(FirstTimeWizard *parent) : QWizardPage(parent } }); - QObject::connect(form.TOS, &QRadioButton::clicked, [=](bool checked) { - if (checked) { - parent->button(QWizard::CommitButton)->setEnabled(true); - - } - }); + From 97de5b371e23455866b17d7b83a21ac5c2b73a6e Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 21 Jun 2020 22:20:31 +0200 Subject: [PATCH 18/37] update lib --- src/emoji.ui | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/emoji.ui diff --git a/src/emoji.ui b/src/emoji.ui new file mode 100644 index 00000000..fb923db9 --- /dev/null +++ b/src/emoji.ui @@ -0,0 +1,72 @@ ++ + From a8ed36b9e4b5f5cf76c8df4de5b0255b420fadc2 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 21 Jun 2020 22:21:31 +0200 Subject: [PATCH 19/37] update lib --- lib/Cargo.lock | 144 ++++++++++++++++++-------------------- lib/Cargo.toml | 2 +- lib/silentdragonlitelib.h | 6 +- lib/src/lib.rs | 12 ++-- src/firsttimewizard.cpp | 7 +- src/firsttimewizard.h | 3 +- 6 files changed, 82 insertions(+), 92 deletions(-) diff --git a/lib/Cargo.lock b/lib/Cargo.lock index df000b4d..c6b8ef06 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -128,14 +128,6 @@ name = "base58" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "base64" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "base64" version = "0.11.0" @@ -315,16 +307,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "core-foundation" -version = "0.6.4" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -598,7 +590,7 @@ dependencies = [ [[package]] name = "h2" -version = "0.2.1" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -610,8 +602,8 @@ dependencies = [ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -687,23 +679,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.2" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-channel 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1050,7 +1042,7 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1192,7 +1184,7 @@ dependencies = [ "blake3 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7)", + "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=6c3f6f22bfc642c714c1e43f6e09cb4d34c7a1de)", ] [[package]] @@ -1490,10 +1482,10 @@ dependencies = [ [[package]] name = "rustls" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.16.11 (registry+https://github.com/rust-lang/crates.io-index)", "sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1502,13 +1494,13 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1557,21 +1549,22 @@ dependencies = [ [[package]] name = "security-framework" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1655,7 +1648,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7#07288de82d84b9bf35d1210ccc98eb1e4b757eb7" +source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=6c3f6f22bfc642c714c1e43f6e09cb4d34c7a1de#6c3f6f22bfc642c714c1e43f6e09cb4d34c7a1de" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -1682,9 +1675,9 @@ dependencies = [ "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "sodiumoxide 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", "webpki-roots 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1843,7 +1836,7 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.11" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1860,13 +1853,13 @@ dependencies = [ "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-macros" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1876,18 +1869,18 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.12.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "webpki 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-util" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1895,31 +1888,31 @@ dependencies = [ "futures-sink 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tonic" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "async-stream 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "async-trait 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.13.6 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "prost 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "prost-derive 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1968,7 +1961,7 @@ dependencies = [ "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-load 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1985,7 +1978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tracing 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2013,7 +2006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2026,7 +2019,7 @@ dependencies = [ "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-discover 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2047,7 +2040,7 @@ name = "tower-make" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2060,7 +2053,7 @@ dependencies = [ "futures-util 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2071,7 +2064,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures-core 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2087,7 +2080,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", "tower-layer 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2468,7 +2461,6 @@ dependencies = [ "checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f" "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" -"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" "checksum bech32 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdcf67bb7ba7797a081cd19009948ab533af7c355d5caf1d08c777582d351e9c" "checksum bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = "+ + + 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 +" @@ -2492,8 +2484,8 @@ dependencies = [ "checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" -"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" -"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" +"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +"checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" "checksum crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "24ce9782d4d5c53674646a6a4c1863a21a8fc0cb649b3c94dfc16e45071dea19" "checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" @@ -2528,7 +2520,7 @@ dependencies = [ "checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum group 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)" = " " -"checksum h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9433d71e471c1736fd5a61b671fc0b148d7a2992f666c958d03cd8feb3b88d1" +"checksum h2 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "79b7246d7e4b979c03fa093da39cfb3617a96bbeee6310af63991668d7e843ff" "checksum hashbrown 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3bae29b6653b3412c2e71e9d486db9f9df5d701941d86683005efb9f2d28e3da" "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772" @@ -2538,7 +2530,7 @@ dependencies = [ "checksum http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" "checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -"checksum hyper 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fa1c527bbc634be72aa7ba31e4e4def9bbb020f5416916279b7c705cd838893e" +"checksum hyper 0.13.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a6e7655b9594024ad0ee439f3b5a7299369dc2a3f459b47c696f9ff676f9aa1f" "checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" @@ -2578,7 +2570,7 @@ dependencies = [ "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" -"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92" "checksum pin-project 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" "checksum pin-project-internal 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" @@ -2628,16 +2620,16 @@ dependencies = [ "checksum rust-embed-utils 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105" "checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rustls 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" -"checksum rustls-native-certs 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51ffebdbb48c14f84eba0b715197d673aff1dd22cc1007ca647e28483bbcc307" +"checksum rustls 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" +"checksum rustls-native-certs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a75ffeb84a6bd9d014713119542ce415db3a3e4748f0bfce1e1416cd224a23a5" "checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" "checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum sct 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" "checksum secp256k1 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e0344a794ff109f85547039536028e12f313178ac1545e49fdf16a530d900a7b" -"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df" -"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895" +"checksum security-framework 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "97bbedbe81904398b6ebb054b3e912f99d55807125790f3198ac990d98def5b0" +"checksum security-framework-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" @@ -2647,7 +2639,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7)" = " " +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=6c3f6f22bfc642c714c1e43f6e09cb4d34c7a1de)" = " " "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" @@ -2665,11 +2657,11 @@ dependencies = [ "checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" "checksum tiny-bip39 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c1c5676413eaeb1ea35300a0224416f57abc3bd251657e0fafc12c47ff98c060" -"checksum tokio 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8fdd17989496f49cdc57978c96f0c9fe5e4a58a8bddc6813c449a4624f6a030b" -"checksum tokio-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f4b1e7ed7d5d4c2af3d999904b0eebe76544897cdbfb2b9684bed2174ab20f7c" -"checksum tokio-rustls 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "141afec0978abae6573065a48882c6bae44c5cc61db9b511ac4abf6a09bfd9cc" -"checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" -"checksum tonic 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08283643b1d483eb7f3fc77069e63b5cba3e4db93514b3d45470e67f123e4e48" +"checksum tokio 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" +"checksum tokio-macros 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +"checksum tokio-rustls 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4adb8b3e5f86b707f1b54e7c15b6de52617a823608ccda98a15d3a24222f265a" +"checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +"checksum tonic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4afef9ce97ea39593992cf3fa00ff33b1ad5eb07665b31355df63a690e38c736" "checksum tonic-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0436413ba71545bcc6c2b9a0f9d78d72deb0123c6a75ccdfe7c056f9930f5e52" "checksum tower 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd3169017c090b7a28fce80abaad0ab4f5566423677c9331bb320af7e49cfe62" "checksum tower-balance 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a792277613b7052448851efcf98a2c433e6f1d01460832dc60bef676bc275d4c" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 5d7a33c4..d0c3d504 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -12,4 +12,4 @@ crate-type = ["staticlib"] libc = "0.2.58" lazy_static = "1.4.0" blake3 = "0.3.4" -silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "07288de82d84b9bf35d1210ccc98eb1e4b757eb7" } +silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "6c3f6f22bfc642c714c1e43f6e09cb4d34c7a1de" } diff --git a/lib/silentdragonlitelib.h b/lib/silentdragonlitelib.h index 638ac0ce..4e1c983f 100644 --- a/lib/silentdragonlitelib.h +++ b/lib/silentdragonlitelib.h @@ -6,11 +6,11 @@ extern "C" { #endif extern bool litelib_wallet_exists (const char* chain_name); -extern char * litelib_initialize_new (bool dangerous, const char* server); +extern char * litelib_initialize_new (const char* server); extern char * litelib_initialize_new_from_phrase - (bool dangerous, const char* server, const char* seed, + (const char* server, const char* seed, unsigned long long birthday, unsigned long long number); -extern char * litelib_initialize_existing (bool dangerous, const char* server); +extern char * litelib_initialize_existing (const char* server); extern char * litelib_execute (const char* s, const char* args); extern void litelib_rust_free_string (char* s); extern char * blake3_PW (char* pw); diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 174c2b84..f1be0d3c 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -57,7 +57,7 @@ return e_str.into_raw(); /// Create a new wallet and return the seed for the newly created wallet. #[no_mangle] -pub extern fn litelib_initialize_new(dangerous: bool, server: *const c_char) -> *mut c_char { +pub extern fn litelib_initialize_new(server: *const c_char) -> *mut c_char { let server_str = unsafe { assert!(!server.is_null()); @@ -65,7 +65,7 @@ pub extern fn litelib_initialize_new(dangerous: bool, server: *const c_char) -> }; let server = LightClientConfig::get_server_or_default(Some(server_str)); - let (config, latest_block_height) = match LightClientConfig::create(server, dangerous) { + let (config, latest_block_height) = match LightClientConfig::create(server) { Ok((c, h)) => (c, h), Err(e) => { let e_str = CString::new(format!("Error: {}", e)).unwrap(); @@ -101,7 +101,7 @@ pub extern fn litelib_initialize_new(dangerous: bool, server: *const c_char) -> /// Restore a wallet from the seed phrase #[no_mangle] -pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const c_char, +pub extern fn litelib_initialize_new_from_phrase(server: *const c_char, seed: *const c_char, birthday: u64, number: u64) -> *mut c_char { let server_str = unsafe { assert!(!server.is_null()); @@ -116,7 +116,7 @@ pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const }; let server = LightClientConfig::get_server_or_default(Some(server_str)); - let (config, _latest_block_height) = match LightClientConfig::create(server, dangerous) { + let (config, _latest_block_height) = match LightClientConfig::create(server) { Ok((c, h)) => (c, h), Err(e) => { let e_str = CString::new(format!("Error: {}", e)).unwrap(); @@ -143,7 +143,7 @@ pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const // Initialize a new lightclient and store its value #[no_mangle] -pub extern fn litelib_initialize_existing(dangerous: bool, server: *const c_char) -> *mut c_char { +pub extern fn litelib_initialize_existing(server: *const c_char) -> *mut c_char { let server_str = unsafe { assert!(!server.is_null()); @@ -151,7 +151,7 @@ pub extern fn litelib_initialize_existing(dangerous: bool, server: *const c_char }; let server = LightClientConfig::get_server_or_default(Some(server_str)); - let (config, _latest_block_height) = match LightClientConfig::create(server, dangerous) { + let (config, _latest_block_height) = match LightClientConfig::create(server) { Ok((c, h)) => (c, h), Err(e) => { let e_str = CString::new(format!("Error: {}", e)).unwrap(); diff --git a/src/firsttimewizard.cpp b/src/firsttimewizard.cpp index 4017ed60..38901c97 100644 --- a/src/firsttimewizard.cpp +++ b/src/firsttimewizard.cpp @@ -9,10 +9,9 @@ #include "../lib/silentdragonlitelib.h" -FirstTimeWizard::FirstTimeWizard(bool dangerous, QString server) +FirstTimeWizard::FirstTimeWizard(QString server) { setWindowTitle("New wallet wizard"); - this->dangerous = dangerous; this->server = server; ////backup addresslabels.dat if there is one, to restore it later @@ -194,7 +193,7 @@ NewSeedPage::NewSeedPage(FirstTimeWizard *parent) : QWizardPage(parent) { void NewSeedPage::initializePage() { // Call the library to create a new wallet. - char* resp = litelib_initialize_new(parent->dangerous, parent->server.toStdString().c_str()); + char* resp = litelib_initialize_new(parent->server.toStdString().c_str()); QString reply = litelib_process_response(resp); QByteArray ba_reply = reply.toUtf8(); @@ -273,7 +272,7 @@ QString number_str = form.number->text(); qint64 number = number_str.toUInt(); // 3. Attempt to restore wallet with the seed phrase { - char* resp = litelib_initialize_new_from_phrase(parent->dangerous, parent->server.toStdString().c_str(), + char* resp = litelib_initialize_new_from_phrase(parent->server.toStdString().c_str(), seed.toStdString().c_str(), birthday, number); QString reply = litelib_process_response(resp); diff --git a/src/firsttimewizard.h b/src/firsttimewizard.h index 324f115f..8b6de40c 100644 --- a/src/firsttimewizard.h +++ b/src/firsttimewizard.h @@ -16,7 +16,7 @@ class FirstTimeWizard: public QWizard public: - FirstTimeWizard(bool dangerous, QString server); + FirstTimeWizard(QString server); protected: @@ -29,7 +29,6 @@ class FirstTimeWizard: public QWizard Page_Restore }; - bool dangerous; QString server; friend class NewOrRestorePage; From 27d743646a0ce55a6aa577b0fc3349dec2c34b7e Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Sun, 21 Jun 2020 22:23:15 +0200 Subject: [PATCH 20/37] first implementation of emojis --- application.qrc | 13 +++ res/emoji/emoji1.png | Bin 0 -> 6899 bytes res/emoji/fire.png | Bin 0 -> 39293 bytes res/emoji/heart_eyes.png | Bin 0 -> 100906 bytes res/emoji/innocent.png | Bin 0 -> 13310 bytes res/emoji/joy.png | Bin 0 -> 13740 bytes res/emoji/laughing.png | Bin 0 -> 15365 bytes res/emoji/money-mouth.png | Bin 0 -> 3233 bytes res/emoji/partying_face.png | Bin 0 -> 6908 bytes res/emoji/sweet_smile.png | Bin 0 -> 15115 bytes silentdragon-lite.pro | 2 + src/Chat/Helper/ChatDelegator.h | 20 ++++ src/connection.cpp | 8 +- src/connection.h | 3 +- src/emoji.ui | 196 ++++++++++++++++++++++---------- src/mainwindow.cpp | 68 +++++++++++ src/mainwindow.h | 6 + src/mainwindow.ui | 55 ++++++++- 18 files changed, 296 insertions(+), 75 deletions(-) create mode 100644 res/emoji/emoji1.png create mode 100644 res/emoji/fire.png create mode 100644 res/emoji/heart_eyes.png create mode 100644 res/emoji/innocent.png create mode 100644 res/emoji/joy.png create mode 100644 res/emoji/laughing.png create mode 100644 res/emoji/money-mouth.png create mode 100644 res/emoji/partying_face.png create mode 100644 res/emoji/sweet_smile.png diff --git a/application.qrc b/application.qrc index 9ff32271..b7d51382 100644 --- a/application.qrc +++ b/application.qrc @@ -51,6 +51,7 @@ res/money-mouth.png res/money-outgoing.png res/hush-money-white.png +
{3Zu2tb+w@!Xm19eNn6oT;pPgn$i}2B{ok~=jjuN
zRJHACdx}_mR`R-iP4~o}8C_7AxUk3xd3)-J;pAy %4kxVrph?Vd>=T;_3!=_ju>$9}pN691;~B6B`%*F(ENCD;xSLCpRy@th}PKs=B7O
zuC2YJv#YzOw{L8GVsdKw%gpTZ%Iezs#^%=c4*cNo==kIZ;`HpQUl;()zq#zUj{T)y
zMCg89yM7(>I`&n+Fs`|w8z#|ptb1HHh$WPIFDitLYpMBR&AD?Fqt-HOPHBp4Ufz5me
zi(>*K5)%ZDMNIg&cfDWM|DxYU2;&JjFs%FocmZC~`Z=~dDFbl`O_k;#TftaXj|a^T
zm##!FZ^{n&i3IbDHuzbt)&${QS%8TZCTrQj6@~fKwS@TSJf1r;REMyk@TB-qsF2OV
znpaF-ef6dEGOwmz7za4kH>k(EK>60j&uCFlBh5E8A$32+Q~FLb2*6tpYuFP%dqjy0
z>nZO9;+9}cL*BqU-JJ1m?>C0+%doI>Ij^yB>5+-EZV)WLZg
z31V+<{|
j+(F(~?q2ZKSnt^i$Fk^HMsY)M$YPGi1?^AQGn3Ow$)v
z$>iOct<8l2tRLLC1N&xo*2Pr_BjPYRvHGloB;+*8p?0!!IpweSk-}f)le-?wrktE<
zH}2F73rF(#SgE7_T_-Cd(k;3(3UrvGL`gddLjJBVUHqujmL4>?hakHO#gUSm#D#Y>
z+($(}*(WG!GpL8g=rH-Ji(1tud^7A}s?7-cE>;tucf8
tUjznCT*Cg?BiOdGEhc`3vElUGLB`LB
zRE}2?XPL=KvUk!h*S-5EZ`!ZTBR2h(TG4KVJP<;k7GDQ3di$?Jzk$|f6tuAHSk`~j
zLdrRMvc$)XpK!6sLz#anp9EyXG&cn}#mEnE))56>Z|kTX{|<~)tSi)BrNq9J`7)>N
z-ERHAhONW%&Cj9Jwrf#VBvzb0&XMEtLQ28=d*yT_#AI!ehRz=e5w4Upl{W&=csPaO
zF`