add simplewallet --generate-new-wallet arg checks

Add fail-fast paths that reduce frustration around the misuse of
--wallet-file combined with --restore-deterministic-wallet.  Flow now
gives more descriptive errors and avoids having users type in their
whole seed before the failure condition is noticed.
This commit is contained in:
Michael Shick 2017-06-07 07:46:59 -07:00
parent e3da0ca828
commit ac0714dcd7
No known key found for this signature in database
GPG Key ID: D62CFE1C241FFE79

View File

@ -929,6 +929,11 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
fail_msg_writer() << tr("can't specify both --restore-deterministic-wallet and --non-deterministic"); fail_msg_writer() << tr("can't specify both --restore-deterministic-wallet and --non-deterministic");
return false; return false;
} }
if (!m_wallet_file.empty())
{
fail_msg_writer() << tr("--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file");
return false;
}
if (m_electrum_seed.empty()) if (m_electrum_seed.empty())
{ {
@ -1090,6 +1095,10 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
} }
else else
{ {
if (m_generate_new.empty()) {
fail_msg_writer() << tr("specify a wallet path with --generate-new-wallet (not --wallet-file)");
return false;
}
m_wallet_file = m_generate_new; m_wallet_file = m_generate_new;
bool r = new_wallet(vm, m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, old_language); bool r = new_wallet(vm, m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, old_language);
CHECK_AND_ASSERT_MES(r, false, tr("account creation failed")); CHECK_AND_ASSERT_MES(r, false, tr("account creation failed"));