simplewallet: add a warning and prompt on rescan_blockchain

Many people are using this as a "let's see what this does" command
when something doesn't work as they thought it should, and thus
destroying info that they might still need.
This commit is contained in:
moneromooo-monero 2018-08-07 12:48:04 +00:00
parent 0dddfeacc9
commit 3e914ad831
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

View File

@ -2342,7 +2342,7 @@ simple_wallet::simple_wallet()
tr("Show the unspent outputs of a specified address within an optional amount range.")); tr("Show the unspent outputs of a specified address within an optional amount range."));
m_cmd_binder.set_handler("rescan_bc", m_cmd_binder.set_handler("rescan_bc",
boost::bind(&simple_wallet::rescan_blockchain, this, _1), boost::bind(&simple_wallet::rescan_blockchain, this, _1),
tr("Rescan the blockchain from scratch.")); tr("Rescan the blockchain from scratch, losing any information which can not be recovered from the blockchain itself."));
m_cmd_binder.set_handler("set_tx_note", m_cmd_binder.set_handler("set_tx_note",
boost::bind(&simple_wallet::set_tx_note, this, _1), boost::bind(&simple_wallet::set_tx_note, this, _1),
tr("set_tx_note <txid> [free text note]"), tr("set_tx_note <txid> [free text note]"),
@ -6594,6 +6594,14 @@ bool simple_wallet::unspent_outputs(const std::vector<std::string> &args_)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
bool simple_wallet::rescan_blockchain(const std::vector<std::string> &args_) bool simple_wallet::rescan_blockchain(const std::vector<std::string> &args_)
{ {
message_writer() << tr("Warning: this will lose any information which can not be recovered from the blockchain.");
message_writer() << tr("This includes destination addresses, tx secret keys, tx notes, etc");
std::string confirm = input_line(tr("Rescan anyway ? (Y/Yes/N/No): "));
if(!std::cin.eof())
{
if (!command_line::is_yes(confirm))
return true;
}
return refresh_main(0, true); return refresh_main(0, true);
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------