From 42959c26d6bc01e0b6d2289db84585293a437abf Mon Sep 17 00:00:00 2001 From: adityapk Date: Tue, 30 Oct 2018 14:59:15 -0700 Subject: [PATCH] Support importing keys from zcashd export format --- src/mainwindow.cpp | 13 +++++++++---- src/rpc.cpp | 3 --- src/turnstile.cpp | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d33cecd..961b34a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -443,16 +443,21 @@ void MainWindow::importPrivKey() { if (d.exec() == QDialog::Accepted && !pui.privKeyTxt->toPlainText().trimmed().isEmpty()) { auto rawkeys = pui.privKeyTxt->toPlainText().trimmed().split("\n"); - auto keys = new QList(); + QList keysTmp; // Filter out all the empty keys. - std::copy_if(rawkeys.begin(), rawkeys.end(), std::back_inserter(*keys), [=] (auto key) { - return !key.trimmed().isEmpty(); + std::copy_if(rawkeys.begin(), rawkeys.end(), std::back_inserter(keysTmp), [=] (auto key) { + return !key.startsWith("#") && !key.trimmed().isEmpty(); + }); + + auto keys = new QList(); + std::transform(keysTmp.begin(), keysTmp.end(), std::back_inserter(*keys), [=](auto key) { + return key.trimmed().split(" ")[0]; }); // Start the import. The function takes ownership of keys doImport(keys); QMessageBox::information(this, - "Imported", "The keys were imported. It may take several minutes to rescan the blockchain with the new keys for your balance to be shown accurately.", + "Imported", "The keys were imported. It may take several minutes to rescan the blockchain. Until then, functionality may be limited", QMessageBox::Ok); } } diff --git a/src/rpc.cpp b/src/rpc.cpp index c644a68..46d47d5 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -191,8 +191,6 @@ void RPC::importZPrivKey(QString addr, bool rescan, const std::function* newAddrs) { - // Get block numbers + // Get block numbers auto curBlock = Settings::getInstance()->getBlockNumber(); auto blockNumbers = getBlockNumbers(curBlock, curBlock + numBlocks, splits.size());